CVE-2026-10656: NULL-pointer dereference DoS in MAX32 USB device controller transfer-completion handlers

Published Jul 5, 2026
·
Updated

The MAX32xxx USB device controller driver (drivers/usb/udc/udcmax32.c, compatible adimax32usbhs) dereferenced an endpoint buffer in its OUT and IN transfer-completion handlers without checking it for NULL. udceventxferoutdone() called netbufadd(buf, eprequest->actlen) immediately after buf = udcbufget(epcfg), where udcbufget() returns NULL when the endpoint FIFO is empty.

A transfer-completion event is queued from interrupt context and processed asynchronously by the driver thread; between queuing and processing, the endpoint FIFO can be drained by host-controlled control flow — in particular udcsetupreceived() drains the EP0 OUT/IN FIFOs whenever a new SETUP packet arrives, and dequeue/disable/purge paths drain it likewise.

A USB host that aborts an in-flight EP0 control transfer with a new SETUP packet (legal USB behavior) can therefore cause a stale XFEROUTDONE event to be processed against an empty FIFO, producing netbufadd(NULL, ...), a near-NULL pointer dereference that faults and crashes the device. No authentication is required; the attacker is the USB host the device is connected to (physical bus access). Impact is denial of service (device crash).

The defect was introduced when the MAX32 UDC driver was added and shipped in Zephyr v4.4.0. The fix adds NULL-buffer checks that return early with UDCEVTERROR/-ENOBUFS in both the OUT-done and IN-done handlers.

Affected Software

2 affected components
Runtime Zephyr>=4.4.0<=4.4.0
zephyrproject zephyr>=4.2.0<=4.4.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Zephyr MAX32 USB device controller driver (drivers/usb/udc/udc_max32.c, compatible adi_max32_usbhs) to a version that resolves this vulnerability.

    Fixed in v4.4.0
  2. Configuration

    Apply the fix that adds NULL-buffer checks and returns early (UDC_EVT_ERROR / -ENOBUFS) in both udc_event_xfer_out_done() (OUT-done) and the corresponding IN-done handler when udc_buf_get() returns NULL and the endpoint FIFO is empty.

    MAX32 UDC driver (udc_max32.c) NULL-buffer checks in transfer-completion handlers = enabled

Event History

Jul 5, 2026
CVE Published
via MITRE·10:23 PM
Data Sourced
via MITRE·10:23 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·11:16 PM
RemedyDescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-10656?

CVE-2026-10656 has a medium severity rating of 4.6.

2

What is the risk associated with CVE-2026-10656?

The risk associated with CVE-2026-10656 is rated as 27.

3

How do I fix CVE-2026-10656?

To fix CVE-2026-10656, update the MAX32 USB device controller driver to a version that includes checks for NULL before dereferencing endpoint buffers.

4

What type of vulnerability is CVE-2026-10656?

CVE-2026-10656 is a null pointer dereference vulnerability leading to a denial of service (DoS).

5

What systems are affected by CVE-2026-10656?

CVE-2026-10656 affects the Runtime Zephyr operating system using the MAX32xxx USB device controller.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203