usbhdeviceinit() in subsys/usb/host/usbhdevice.c rejects a device whose device descriptor advertises bNumConfigurations == 0, but it only…
CVE-2026-90587
usbhdeviceinit() in subsys/usb/host/usbhdevice.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 usbhdevicesetconfiguration() — the only place udev->cfgdesc is allocated. The device structure is zero-initialised by usbhdevicealloc(), so udev->cfgdesc remains NULL. usbhdeviceconnect() treats the zero return as a successful enumeration and calls usbhclassprobedevice(), which starts its descriptor walk from udev->cfgdesc. usbhdescgetnextfunction() passes that NULL pointer to usbhdescisvalid(), 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 UHCEVTDEVCONNECTEDFS/HS event handler in subsys/usb/host/usbhcore.c, with no authentication and no user interaction beyond the physical attachment.…
Assessment
- CVSS
- 4.6 (v3.1)
- Severity
- Medium
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 9 November 2026
- Last updated
- 9 November 2026
- Affected
- zephyrproject · Zephyr
- Assigner
- zephyr
CVSS vectorCVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
At the source
References
Community proofs of concept
No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.
Submit a proof of concept
Only for publicly disclosed vulnerabilities, and only material from testing you were authorised to perform. This platform does not buy, sell, or broker exploits — see earning from vulnerability research for legitimate bounty programs. Submissions are reviewed before they appear. Text only; do not include live credentials, personal data, or anything targeting systems you are not permitted to test.
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-90587