Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri — CVE-2026-10672 的概念验证漏洞利用程序,针对 Zephyr RTOS LwM2M 固件更新拉取客户端中的越界读取漏洞。包含独立的 C 语言复现程序和用于测试的恶意 CoAP/LwM2M 服务器。 | Kitploit
工具/GitHubGitHub/hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri
嵌入式系统安全物联网安全漏洞分析漏洞利用模糊测试论文与研究学习与教育二进制利用
GitHub

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
hunt-benito/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri

CVE-2026-10672 的概念验证漏洞利用程序,针对 Zephyr RTOS LwM2M 固件更新拉取客户端中的越界读取漏洞。包含独立的 C 语言复现程序和用于测试的恶意 CoAP/LwM2M 服务器。

查看仓库
1个月前尚未审核

CVE-2026-10672 — Zephyr LwM2M 固件更新越界读取 PoC

针对 CVE-2026-10672 的概念验证,这是 Zephyr RTOS 的 LwM2M 固件更新拉取客户端(subsys/net/lib/lwm2m/lwm2m_pull_context.c)中的一个越界读取漏洞。

漏洞

  • CVE: CVE-2026-10672
  • CVSS: 8.2 高危 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L)
  • CWE: CWE-125 (越界读取)
  • 组件: lwm2m_pull_context_start_transfer() in lwm2m_pull_context.c
  • 根本原因: memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN) 当服务器提供的包 URI(/5/0/1)≥ 128 字节时,会精确复制 128 字节到 char uri[128],且没有 NUL 终止符。随后的 strlen(context.uri)、http_parser_parse_url() 以及 CoAP PROXY_URI 选项追加操作都会越过缓冲区,读取相邻结构体内存(is_firmware_uri、result_cb / write_cb 函数指针以及 DTLS 连接上下文)。越界读取的字节会在出站 CoAP 请求中被泄露。
  • 缓冲区: context.uri[128](CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN,默认 128;LWM2M_PACKAGE_URI_LEN 被 #define 为它)
  • 受影响版本: Zephyr v3.0.0 至 v4.4.0(引入该复制操作的拉取上下文重构首次随 v3.0.0 发布)
  • 已修复版本: Zephyr v4.4.1 和 v4.3.1
  • 修复提交: 99a164df5cea5af76e32b57c6d51854f018969a2 — 添加了 strlen(uri) >= sizeof(context.uri) → -ENOMEM 检查,并改用 strcpy()。

内容

文件用途
poc.c漏洞/修复代码路径的独立 C 复现。忠实重新声明 struct firmware_pull_context(uri[128] 缓冲区以及会被越界读取的相邻字段)和存在泄露的 CoAP PROXY_URI 消费端。

构建并运行 C 复现

root@kitploit:~
gcc -O0 -g -o poc poc.c
./poc

预期:一个 200 字节的包 URI 会产生一个 141 字节 的 CoAP PROXY_URI 选项——即 128 字节的 URI 加上从 context.is_firmware_uri、结构体填充以及 result_cb/write_cb 函数指针中泄露的 13 字节。修复后的代码路径会以 -ENOMEM 拒绝该 URI,且不复制任何内容。

ASan 验证

root@kitploit:~
gcc -O0 -g -fsanitize=address -o poc-asan poc.c
./poc-asan

该探针恰好分配 128 字节,用非 NUL 字节填充(模拟没有终止符的完整 context.uri),然后调用 strlen():

root@kitploit:~
ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 129 at 0x...
0x... is located 0 bytes after 128-byte region [...,0x...)

运行恶意 LwM2M 服务器

root@kitploit:~
# Build and inspect the CoAP packets without sending:
python3 lwm2m_evil_server.py --dry-run --uri-len 200

# Send to a vulnerable client (NoSec CoAP, UDP/5683):
python3 lwm2m_evil_server.py --target 10.0.0.42 --port 5683 --uri-len 200 --listen 2

该脚本先发出 CoAP PUT /5/0/1(LwM2M 写入包 URI 资源),然后发出 CoAP POST /5/0/2(LwM2M 执行 Update,这会导致固件拉取并触发该 bug)。在生产环境的 LwM2M 中,会话通过 DTLS(UDP/5684)运行;范围内的攻击者是恶意/被入侵的管理服务器,或者当 DTLS 服务器认证未强制执行时的路径上攻击者。

完整文章

https://www.hunt-benito.com/blog/zephyr-lwm2m-firmware-update-oob-read-cve-2026-10672-truncated-package-uri/

免责声明

仅供授权的安全研究和教育目的使用。请勿将这些工具用于您不拥有或未经明确许可测试的设备。

下载工具
lwm2m_evil_server.py
极简 CoAP/LwM2M 服务器,通过 UDP(NoSec 模式)向易受攻击客户端的 /5/0/1 递送超长包 URI——即攻击的网络投递部分。无外部依赖。