jeffaf/cve-2026-32746

GitHub: jeffaf/cve-2026-32746

针对 GNU InetUtils telnetd LINEMODE SLC 缓冲区溢出漏洞(CVE-2026-32746)的概念验证工具,提供检测脚本和实验环境以验证预认证远程代码执行漏洞。

Stars: 0 | Forks: 0

# CVE-2026-32746 - telnetd LINEMODE SLC 缓冲区溢出 通过 GNU InetUtils telnetd 的 LINEMODE SLC(设置本地字符)处理程序中的缓冲区溢出实现预认证远程代码执行。 **CVSS 3.1:** 9.8 (严重) | **CWE:** CWE-120, CWE-787 ## 概述 `telnetd/slc.c` 中的 `add_slc()` 函数在向固定 108 字节的缓冲区 (`slcbuf`) 追加每个 SLC 三元组的 3 字节时,未进行边界检查。未经认证的攻击者可以在选项协商期间(在任何登录提示之前)发送一个包含 40 个以上三元组(功能代码 > 18/NSLC)的精心构造的 SLC 子选项,从而导致缓冲区溢出,破坏 BSS 中的 `slcptr` 指针,并在 `end_slc()` 使用被破坏的指针时实现任意写入。 ## 受影响范围 - GNU InetUtils telnetd 2.7 及之前版本(所有版本) - 任何源自 BSD SLC 代码库的 telnetd - 预计将于 2026 年 4 月 1 日发布补丁 ## 此 PoC 的功能 - ✅ 触发缓冲区溢出并导致 telnetd 崩溃(确认漏洞存在) - ❌ 不能实现代码执行(无 shellcode/ROP 链) ## 快速开始 ``` # 构建漏洞实验环境 docker compose up -d # 检测(非破坏性) python3 detect.py 127.0.0.1 2323 # 利用(导致 telnetd 崩溃 - 确认漏洞) python3 exploit.py 127.0.0.1 2323 # 清理 docker compose down ``` ## 实验环境 Docker 设置运行一个包含 `inetutils-telnetd` 2.4 的 Debian 容器,并在 `xinetd` 管理下暴露于 2323 端口。完全隔离 - 不会影响您的主机。 ## 工作原理 1. 连接到 telnetd 并完成初始选项协商 2. 客户端主动发送 `WILL LINEMODE` 以触发 LINEMODE 协商 3. 服务器响应 `DO LINEMODE` 并进入 SLC 子选项处理流程 4. 客户端发送一个包含 40-60 个功能代码 > 18 (NSLC) 的三元组的精心构造的 SLC 子选项 5. `add_slc()` 将每个三元组的“不支持”回复(3 字节)排队存入一个 104 字节的缓冲区 6. 在约 35 个三元组之后,缓冲区溢出,破坏 `slcptr` 和相邻的 BSS 数据 7. `end_slc()` 通过被破坏的 `slcptr` 写入子选项结束标记(任意写入) 8. telnetd 崩溃(或根据溢出内容产生更严重的后果) ## 文件 | 文件 | 描述 | |------|-------------| | `exploit.py` | PoC 崩溃/DoS 漏洞利用 | | `Dockerfile` | 易受攻击的 telnetd 实验环境 | | `docker-compose.yml` | 一键部署实验环境 | | `xinetd-telnet.conf` | xinetd 服务配置 | | `detect.py` | 非破坏性版本检测脚本 | ## 开发 RCE 利用链 要超越 DoS 攻击,您需要: 1. 映射 BSS 布局(`slcbuf` → `slcptr` 偏移量) 2. 通过被破坏的 `slcptr` 控制 `end_slc()` 写入的值 3. 覆盖 GOT 条目或函数指针 4. 将执行流重定向到 shellcode 或 ROP 链 ## 参考资料 - [Dream 公告](https://dreamgroup.com/vulnerability-advisory-pre-auth-remote-code-execution-via-buffer-overflow-in-telnetd-linemode-slc-handler/) - [GNU bug-inetutils 披露](https://lists.gnu.org/archive/html/bug-inetutils/2026-03/msg00031.html) - [The Hacker News](https://thehackernews.com/2026/03/critical-telnetd-flaw-cve-2026-32746.html) - [NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-32746) ## 免责声明 本工具仅用于授权的安全测试和教育目的。请勿对您不拥有或未获得明确测试许可的系统使用。作者不对滥用行为负责。 ## 致谢 - 漏洞发现者:Adiel Sol, Arad Inbar, Erez Cohen, Nir Somech, Ben Grinberg, Daniel Lubel (DREAM 安全研究团队) ## 许可证 MIT
标签:CISA项目, CVE-2026-32746, CVSS 9.8, CWE-120, CWE-787, Docker, DoS, GNU InetUtils, LINEMODE, PoC, Python, RCE, SLC, Telnetd, 二进制安全, 任意写, 内存破坏, 安全防御评估, 拒绝服务, 无后门, 暴力破解, 概念验证, 漏洞分析, 缓冲区溢出, 编程工具, 网络安全, 请求拦截, 路径探测, 远程代码执行, 逆向工具, 配置错误, 隐私保护, 预认证, 高危漏洞