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, 二进制安全, 内存破坏, 安全防御评估, 嵌入式系统, 拒绝服务, 暴力破解, 服务端漏洞, 缓冲区溢出, 编程工具, 网络安全, 请求拦截, 远程代码执行, 逆向工具, 配置错误, 隐私保护, 预认证