CVE-2026-10672
未终止的URI缓冲区导致LwM2M固件拉取(Package URI)中的越界读取
- 已发布
- 2026年7月14日
- 已更新
- 2026年7月14日
- 分配 CNA
- zephyr
- 观察到的证据
- 2026年8月17日
未终止的URI缓冲区导致LwM2M固件拉取(Package URI)中的越界读取
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H低 · 未来 30 天
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
subsys/net/lib/lwm2m/lwm2m_pull_context.c 将固件更新包 URI 复制到固定的静态缓冲区(context.uri,大小为 CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN,默认 128),使用 memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN),恰好复制目标缓冲区大小且无长度校验。固件更新对象将服务器提供的包 URI(/5/0/1)存储在 255 字节缓冲区中,因此 LwM2M 管理服务器(或缺少强 DTLS 的会话上的路径中间攻击者)可以写入 128-254 个字符的 URI;随后仅将前 128 字节复制到 context.uri 中,且无 NUL 终止符。该缓冲区随后被 http_parser_parse_url(context.uri, strlen(context.uri), ...)、基于 strlen 的 CoAP URI 路径/PROXY-URI 选项追加以及 lwm2m_parse_peerinfo() 作为 C 字符串使用,导致对相邻静态内存的越界读取。越界读取的字节被追加到出站 CoAP 请求中(向服务器/代理泄露相邻设备内存信息),并可能导致设备崩溃(拒绝服务)。该易受攻击的复制操作由 pull-context 重构引入(首次发布于 v3.0.0),并存在于直至 v4.4.0 的所有版本中;默认启用的 CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT 路径受影响。修复方案增加了 strlen(uri) >= sizeof(context.uri) 检查并返回 -ENOMEM,同时改用 strcpy(),确保缓冲区有界且以 NUL 终止。
CVE-2026-10672 的概念验证漏洞利用程序,针对 Zephyr RTOS LwM2M 固件更新拉取客户端中的越界读取漏洞。包含独立的 C 语言复现程序和用于测试的恶意 CoAP/LwM2M 服务器。
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。