Hunt-Benito/lwip-snmpv3-stack-overflow-cve-2026-8836-critical-embedded-rce
GitHub: Hunt-Benito/lwip-snmpv3-stack-overflow-cve-2026-8836-critical-embedded-rce
CVE-2026-8836漏洞利用工具
Stars: 0 | Forks: 0
# CVE-2026-8836 — lwIP SNMPv3 堆栈溢出 PoC
CVE-2026-8836漏洞的利用概念,该漏洞是lwIP的SNMPv3 USM处理程序中的关键堆栈基础缓冲区溢出。
## 漏洞
- **CVE**: CVE-2026-8836
- **CVSS**: 9.8 关键
- **组件**: `src/apps/snmp/snmp_msg.c` 中的 `snmp_parse_inbound_frame()`
- **根本原因**: 在 `snmp_asn1_dec_raw()` 中注释掉的边界检查 + 错误的缓冲区大小参数
- **缓冲区**: `msg_authentication_parameters[12]` (SNMP_V3_MAX_AUTH_PARAM_LENGTH = 12)
- **受影响**: 启用 `LWIP_SNMP_V3` 的 lwIP <= 2.2.1
- **修复**: [提交 0c957ec0](https://github.com/lwip-tcpip/lwip/commit/0c957ec03054eb6c8205e9c9d1d05d90ada3898c)
## 完整文章
https://www.hunt-benito.com/lwip-snmpv3-stack-overflow-cve-2026-8836-critical-embedded-rce/
## 使用方法
```
python exploit.py --target 192.168.1.100 --port 161 --overflow-size 256
```
### 使用自定义有效载荷
```
python exploit.py --target 192.168.1.100 --overflow-size 4096 --payload-file shellcode.bin
```
### 多个数据包
```
python exploit.py --target 192.168.1.100 --count 10 --delay 0.5
```
## 工作原理
该漏洞构造了一个有效的SNMPv3消息,其中在USM安全参数中包含一个过大的 `msgAuthenticationParameters` OCTET STRING。TLV长度被设置为大于12字节(实际缓冲区大小)的值,这绕过了内部边界检查,因为易受攻击的代码将 `tlv.value_len` 作为读取长度 *和* 缓冲区最大长度传递。
## 免责声明
本工具仅提供用于授权的安全研究和教育目的。未经授权使用针对您不拥有或未明确获得测试权限的系统是非法的。作者不承担任何责任,也不对由此工具造成的任何滥用或损害负责。
标签:逆向工具