目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-90587— Zephyr USB 主机栈空指针解引用漏洞

一分钟漏洞结论

影响对象
zephyrproject zephyr
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

在 中的 函数会拒绝那些设备描述符中声明 的 USB 设备。然而,该函数仅记录错误日志并跳转至清理标签,却未设置返回码。此时,局部变量 仍保持为 0(源于此前成功读取描述符的操作),导致函数在跳过 (唯一分配 的位置)的情况下返回成功。由于 已将设备结构体零初始化, 保持为 NULL。 将零返回值视为枚举成功,并调用 。后者从 开始遍历描述符。 将该 NULL 指针传递给 ,而该函数的唯一防护仅检查调用方提供的长度参数,因此会通过 NULL 指针读取 。 该漏洞可完全由连接的外设触发:只需连接一个报告 的 USB

CVSS 4.6 · Medium
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-90587 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
NULL pointer dereference in the Zephyr USB host stack when a device reports zero configurations
来源: CVE Program / CVE List V5
Vulnerability Description
usbh_device_init() in subsys/usb/host/usbh_device.c rejects a device whose device descriptor advertises bNumConfigurations == 0, but it only logs the error and jumps to the cleanup label without setting the return code. At that point the local err is still 0 from the preceding successful descriptor read, so the function returns success while having skipped usbh_device_set_configuration() — the only place udev->cfg_desc is allocated. The device structure is zero-initialised by usbh_device_alloc(), so udev->cfg_desc remains NULL. usbh_device_connect() treats the zero return as a successful enumeration and calls usbh_class_probe_device(), which starts its descriptor walk from udev->cfg_desc. usbh_desc_get_next_function() passes that NULL pointer to usbh_desc_is_valid(), whose only guard compares the caller-supplied size, so head->bLength is read through a NULL pointer. The condition is triggered entirely by the attached peripheral: attaching a USB device (or any USB gadget emulating one) that reports bNumConfigurations = 0 reaches the defect directly from the UHC_EVT_DEV_CONNECTED_FS/_HS event handler in subsys/usb/host/usbh_core.c, with no authentication and no user interaction beyond the physical attachment. On targets where page zero is unmapped or CONFIG_NULL_POINTER_EXCEPTION_DETECTION is enabled this raises a fatal exception in the USB host thread, denying service to the host. Where address zero is readable, the descriptor walker instead parses low memory as a descriptor chain and can dispatch a class probe() with attacker-influenced values, causing further out-of-bounds reads through the still-NULL udev->cfg_desc in usbh_desc_get_iface(). No attacker-controlled write was identified, so the impact is availability plus a bounded out-of-bounds read. Note that CONFIG_USB_HOST_STACK is marked experimental.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
来源: CVE Program / CVE List V5
Vulnerability Type
空指针解引用
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
zephyrproject zephyr 4.4.0 ~ 4.5.0 -

二、漏洞 CVE-2026-90587 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-90587 的情报信息

请登录查看更多情报信息。

CVE-2026-90587 其他参考 (2)

同批安全公告 · zephyrproject · 2026-11-09 · 共 7 条

CVE-2026-90586 7.8 HIGH Xtensa MMU 越界写漏洞
CVE-2026-90591 7.5 HIGH NXP ENET-QOS 驱动数据包丢弃时 DMA 地址被破坏
CVE-2026-90590 6.5 MEDIUM NXP ENET QoS 驱动链路断开后发送功能永久丢失
CVE-2026-90589 5.5 MEDIUM 线程栈内存映射未释放耗尽内核地址空间
CVE-2026-90585 4.6 MEDIUM Renesas RA SCI UART 驱动中断风暴导致 CPU 锁死漏洞
CVE-2026-90588 3.7 LOW Zephyr HTTP 客户端调试日志越界读取漏洞

IV. Related Vulnerabilities