CVE-2026-85032
Last modified
CVE-2026-85032 is a medium-severity vulnerability rated 4.8/10 on the CVSS scale. The MCTP over USB device class in subsys/pmci/mctp/mctp_usb.c splits RX handling across two threads: the system workqueue runs mctp_usb_class_out_work(), which parses host OUT data byte by byte and fills a packet buffer at usb->rx_pkt, while the USB device stack thread runs mctp_usb_class_disable(). The disable handler used k_work_cancel(), which removes a queued work item but returns immediately without waiting for a handler that is already running, and then called mctp_usb_reset_rx_state() to mctp_pktbuf_free() the packet buffer the worker may still be using. Both entry points into mctp_usb_class_disable() are driven by the attached USB host: a SET_CONFIGURATION request and a USB bus reset both reach it via usbd_config_reset() in subsys/usb/device_next/usbd_config.c.
Description
The MCTP over USB device class in subsys/pmci/mctp/mctp_usb.c splits RX handling across two threads: the system workqueue runs mctp_usb_class_out_work(), which parses host OUT data byte by byte and fills a packet buffer at usb->rx_pkt, while the USB device stack thread runs mctp_usb_class_disable(). The disable handler used k_work_cancel(), which removes a queued work item but returns immediately without waiting for a handler that is already running, and then called mctp_usb_reset_rx_state() to mctp_pktbuf_free() the packet buffer the worker may still be using. Both entry points into mctp_usb_class_disable() are driven by the attached USB host: a SET_CONFIGURATION request and a USB bus reset both reach it via usbd_config_reset() in subsys/usb/device_next/usbd_config.c. A host that streams partial MCTP frames on the bulk OUT endpoint and repeatedly forces a configuration change or bus reset therefore controls both the data being parsed and the moment the teardown runs, and can retry the race indefinitely without credentials or user interaction. If the free lands while the worker holds the pointer, the worker writes host-supplied bytes into freed memory of the dedicated MCTP heap (CONFIG_MCTP_HEAP_SIZE in subsys/pmci/mctp/mctp_memory.c), corrupting recycled buffers or sys_heap free-block metadata; this window requires genuine parallelism, i.e. CONFIG_SMP or a preemptible CONFIG_SYSTEM_WORKQUEUE_PRIORITY. With the default cooperative workqueue the worker can still yield inside mctp_bus_rx() (application callback or a control-message reply blocking in mctp_usb_tx()), after which it resumes and calls mctp_pktbuf_free(usb->rx_pkt) on a pointer the teardown has NULLed, dereferencing NULL and faulting on targets with null-pointer detection. The fix replaces the cancel with k_work_cancel_sync() plus a new struct k_work_sync out_work_sync, so disable waits for the RX worker to finish before draining the FIFO and freeing the packet buffer. The affected code is the MCTP subsystem, which is marked experimental, built only with CONFIG_MCTP_USB.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 4.4.0, < 4.5.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-85032?
How severe is CVE-2026-85032?
How do I fix CVE-2026-85032?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-85025IBM Langflow OSS 1.0.0 through 1.11.5 Langflow could allow a…9.8
- CVE-2026-85028Creation of a temporary file in a directory with insecure pe…7.8
- CVE-2026-85029IBM Guardium Data Protection 12.2 could allow a remote attac…8.8
- CVE-2026-8503Apache::Session::Generate::SHA256 versions before 1.3.19 for…6.5
- CVE-2026-85030A vulnerability has been found in HKUDS AI-Trader up to d03f…3.7
- CVE-2026-85031A vulnerability was found in TOTOLINK CP450 4.1.0. The impac…9.9
- CVE-2026-85033The AVRCP Target role in subsys/bluetooth/host/classic/avrcp…4.6
- CVE-2026-85034The Bluetooth host's GATT client passed the value of a recei…6.7
- CVE-2026-85035The can_add_rx_filter_msgq() system call installs a CAN RX f…8.8
- CVE-2026-85036The Bluetooth Classic AVDTP layer defers releasing a session…5.7
- CVE-2026-85037The Sunshine Photo Cart WordPress plugin before 3.7 does no…5.3
- CVE-2026-85038The B2BKing — Ultimate WooCommerce B2B and Wholesale Plugin …5.3
Are you affected by CVE-2026-85032?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
