chosenonehacks/CVE-2026-32746

GitHub: chosenonehacks/CVE-2026-32746

针对 GNU InetUtils telnetd LINEMODE SLC 缓冲区溢出漏洞(CVE-2026-32746)的概念验证工具,支持漏洞检测和 DoS 攻击验证。

Stars: 0 | Forks: 0

# CVE-2026-32746 - telnetd LINEMODE SLC 缓冲区溢出 在 GNU InetUtils telnetd 的 LINEMODE SLC(Set Local Characters)处理程序中,通过缓冲区溢出实现预认证远程代码执行。 **CVSS 3.1:** 9.8 (严重) | **CWE:** CWE-120, CWE-787 ## 概述 `telnetd/slc.c` 中的 `add_slc()` 函数在将每个 SLC 三元组的 3 字节追加到固定的 108 字节缓冲区(`slcbuf`)时,未进行边界检查。未经认证的攻击者可以在选项协商期间(在任何登录提示之前)发送一个包含 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, CWE-120, CWE-787, Docker, DoS, GNU InetUtils, LINEMODE, PoC, RCE, SLC, telnetd, xinetd, 二进制安全, 内存破坏, 安全防御评估, 嵌入式系统, 拒绝服务, 暴力破解, 服务端漏洞, 缓冲区溢出, 编程工具, 网络安全, 请求拦截, 远程代码执行, 逆向工具, 配置错误, 隐私保护, 预认证