CVE-2026-8836: CVSS 10.0 lwIP SNMPv3 解析器中的栈溢出
CVE-2026-8836 是一个 CVSS 10.0 基于栈的缓冲区溢出漏洞,存在于 lwIP 2.2.1 及之前的 SNMPv3 USM 处理器中。远程未经身份验证的攻击者可以通过精心构造的...

Indicators of Compromise (1)
| Type ↑ | Value | Description | Conf | |
|---|---|---|---|---|
| SHA1 | 0c957ec03054eb6c8205e9c9d1d05d90ada3898c | Extracted from source material | high |
执行摘要
一个关键的基于栈的缓冲区溢出漏洞,被追踪为 CVE-2026-8836 并具有 CVSS 10.0 严重等级评分,已在轻量级 IP 栈(lwIP)版本中披露,包括并不限于 2.2.1 版本。该缺陷存在于 src/apps/snmp/snmp_msg.c 中的 snmp_parse_inbound_frame 函数内,特别是在 SNMPv3 用户安全模型(USM)处理器中。一个远程的、未经身份验证的攻击者可以通过提供一个精心制作的 msgAuthenticationParameters 字段在 SNMPv3 数据包中触发溢出,这可能导致在任何使用受影响 lwIP 库的设备上远程代码执行或拒绝服务。
上游维护者已经通过提交 0c957ec03054eb6c8205e9c9d1d05d90ada3898c 发布了补丁。鉴于 lwIP 在嵌入式设备、物联网固件和工业控制器中的普遍性,这个漏洞的影响是广泛的。截至本文撰写时,尚未确认任何公开的漏洞利用代码,但 CVSS 10.0 分数表明,对于具有 SNMP 访问权限的攻击者来说,利用此漏洞可能是直接的。
技术分析
lwIP 是一个广泛部署的开源 TCP/IP 栈,专为资源受限的嵌入式系统设计。它被用于无数设备中,包括路由器、传感器、智能家居中心和工业控制模块。lwIP 中的 SNMPv3 实现包括对 USM 的支持,后者提供认证和加密。根据 NVD 条目和上游提交消息,漏洞位于传入 SNMPv3 帧的解析中。
函数 snmp_parse_inbound_frame 在将 msgAuthenticationParameters 字段复制到固定大小的栈缓冲区之前,没有充分验证其长度。提交 0c957ec 中的源代码差异显示了添加边界检查和适当的缓冲区大小,确认了该缺陷的性质为经典的基于栈的缓冲区溢出。由于溢出发生在栈上,能够控制溢出数据的攻击者可能能够覆盖返回地址或其他关键栈数据,以实现任意代码执行。
攻击向量基于网络,只需要目标设备监听 SNMP 流量(默认为 UDP 端口 161)。触发漏洞代码路径不需要身份验证,因为在一些实现中,SNMPv3 USM 解析发生在身份验证验证之前。这使得任何能够向设备发送恶意 SNMPv3 数据包的远程方都可以利用这个缺陷。
CVSS 10.0 分数反映了远程攻击向量、低攻击复杂性、不需要特权、不需要用户交互以及对机密性、完整性和可用性的潜在全面破坏的组合。该漏洞被归类在 CWE-121(基于栈的缓冲区溢出)下。
缓解措施与建议
防御者和设备制造商应采取以下步骤:
- 立即应用上游补丁。 修复包含在 lwIP git 仓库的提交
0c957ec03054eb6c8205e9c9d1d05d90ada3898c中。从源代码构建的用户应该更新到最新版本。对于那些使用二进制分发或供应商 SDK 的人,请联系相应的供应商以获取更新的构建。 - 如果无法立即补丁,禁用不需要 SNMPv3 支持的设备上的 SNMPv3 支持。对于必须运行 SNMPv3 的设备,使用防火墙规则限制对 SNMP 端口(UDP 161)的网络访问,只允许受信任的管理站。
- 监控异常 SNMP 流量。 漏洞利用尝试可能表现为畸形的 SNMPv3 数据包或重复的连接尝试。具有 SNMP 协议解码器的网络入侵检测系统可能能够标记具有过大
msgAuthenticationParameters字段的数据包。 - 分割管理网络。 确保 SNMP 可访问的设备被隔离在专用的管理 VLAN 上,并有严格的访问控制,减少来自一般网络段的攻击面。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。
