harygovind/CVE-2026-24061
GitHub: harygovind/CVE-2026-24061
该项目是 GNU InetUtils telnetd 参数注入漏洞(CVE-2026-24061)的概念验证代码,用于复现和验证通过 NEW_ENVIRON 协议注入 login 标志以绕过身份验证的安全缺陷。
Stars: 0 | Forks: 0
# CVE-2026-24061:GNU InetUtils `telnetd` 参数注入
## 概述
GNU InetUtils Telnet 守护进程 (`telnetd`) 存在参数注入漏洞。在 `NEW_ENVIRON` 协商期间,由于对客户端提供的环境变量清理不足,攻击者可以将命令行标志注入到本地 login 过程中,从而可能导致身份验证绕过。
## 严重程度
- **类型:** 参数注入 / 身份验证绕过
- **攻击向量:** 网络
- **所需权限:** 无
- **受影响组件:** `telnetd` → `/usr/bin/login`
## 受影响版本
GNU InetUtils `telnetd` **1.9.3 – 2.7**(未修复版本)。
## 漏洞机制
在会话协商期间,`telnetd` 会响应 `NEW_ENVIRON` Telnet 选项,该选项允许客户端将 `USER` 等环境变量传递给服务器。然后,守护进程将此值直接插入到用于调用 `/usr/bin/login` 的参数列表中。
由于没有验证该值是否仅包含合法的用户名字符,客户端可以提供一个以连字符 (`-`) 开头的字符串。它不会被当做用户名,而是被 `login` 解析为命令行标志。根据 `login` 的具体实现,这可能会启用某些行为,例如跳过密码身份验证(例如,通过 `-f` “已认证”标志),从而导致未经授权的访问。
## 检测
**检查已安装的软件包版本:**
Debian / Ubuntu:
```
dpkg -l | grep inetutils-telnetd
```
RHEL / CentOS:
```
rpm -qa | grep inetutils
```
**确认可利用性:** 针对非生产/测试实例尝试上述 PoC,并检查是否在无需密码提示的情况下授予了经过身份验证的会话。
## 修复建议
- **升级**到已修复的 GNU InetUtils 版本,该版本中的 `telnetd` 会拒绝或去除任何以 `-` 开头的 `USER` 值,然后再将其传递给 `login`。
- 尽可能完全**禁用 Telnet** 并改用 SSH——无论此问题如何,Telnet 始终以明文形式传输凭据和数据。
- 如果必须继续使用 Telnet,请通过防火墙规则 / VPN 限制访问,并监控身份验证日志中是否存在异常的 login 标志使用情况。
## 参考资料
- GNU InetUtils 源代码仓库
- CVE-2026-24061 安全公告
标签:CISA项目, Cutter, PoC, Telnet, 参数注入, 暴力破解, 认证绕过