Skip to main content

Zephyr RTOS CVE-2026-10656

MEDIUM
NULL Pointer Dereference (CWE-476)
2026-07-05 zephyr
4.6
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Obtain physical USB port access
  2. Delivery
    Connect programmable USB host to target device
  3. Exploit
    Initiate EP0 control transfer
  4. Install
    Send new SETUP packet to abort transfer (legal USB behavior)
  5. C2
    EP0 FIFO drained before driver thread processes stale XFER_DONE event
  6. Execute
    net_buf_add(NULL) triggers near-NULL pointer dereference
  7. Impact
    Device crash and reset

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Physical USB bus access is the sole prerequisite: the attacker must be the USB host connected to the target device's USB port. The target must be running Zephyr v4.4.0 or a later unpatched build and must be built for hardware using the MAX32xxx USB device controller (DTS compatible string adi_max32_usbhs). Exploitation requires initiating an EP0 control transfer and then issuing a new SETUP packet before the driver thread processes the completion event - this is legal USB behavior achievable with any programmable USB host adapter or a Linux host with libusb/gadget tools. No authentication is required because the attacker operates as the USB host, not as a software-layer principal. Exploitation is bounded by: (1) physical USB port access only - no network-based attack path exists; (2) the specific MAX32xxx hardware family - devices using other Zephyr USB UDC drivers are unaffected; (3) impact limited strictly to device crash/reset with no code execution or data exfiltration possible.

Impact

The CVSS 3.1 vector CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (score 4.6, Medium) accurately characterizes this as a physical-access-only denial-of-service issue. AV:P is the dominant risk limiter: an attacker must have physical USB bus access to the target device, which eliminates the vast majority of remote threat actors. AC:L and PR:N reflect that once physical access is obtained, no authentication or special configuration is needed - sending a SETUP packet is standard USB behavior. Impact is constrained entirely to availability (A:H); there is no confidentiality or integrity impact, and scope is unchanged (S:U), meaning the crash is contained to the affected device. No EPSS data was available in the input; given the physical access requirement and niche hardware dependency, real-world exploitation probability would be expected to be low. The vulnerability is not listed in CISA KEV and no POC code has been identified, further supporting a lower operational priority. This is a genuine risk for embedded product manufacturers shipping devices with MAX32xxx USB controllers on Zephyr v4.4.0, particularly in contexts where the USB port is exposed to untrusted hosts (public kiosks, shared lab equipment, field-deployed sensors). For those specific deployments it warrants patching; for organizations with no MAX32xxx hardware, it is irrelevant.

Exploit ScenarioDerived

An attacker with physical access to a device running Zephyr v4.4.0 on MAX32xxx hardware connects a programmable USB host (such as a Facedancer, GreatFET, or even a Linux host with raw USB gadget tools) and initiates an EP0 control transfer to the target device. Before the device driver thread processes the completion event, the attacker sends a new SETUP packet - a valid USB protocol action - which causes udc_setup_received() to drain the EP0 FIFOs, leaving udc_buf_get() returning NULL when the stale XFER_OUT_DONE event is finally processed, triggering net_buf_add(NULL, ...) and crashing the device. No public proof-of-concept code has been identified at time of analysis, but the triggering sequence requires only standard USB host functionality.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 05, 2026

NULL pointer dereference in the Zephyr RTOS MAX32xxx USB device controller driver (udc_max32.c) crashes devices running Zephyr v4.4.0 when a physically connected USB host aborts an in-flight EP0 control transfer by sending a new SETUP packet - a completely legal USB protocol action. The race condition between interrupt-queued transfer-completion events and asynchronous FIFO draining by the driver thread causes net_buf_add(NULL, ...) when udc_buf_get() returns NULL on an empty FIFO, producing a near-NULL pointer dereference and device fault. No active exploitation has been confirmed (not in CISA KEV), and no public proof-of-concept code has been identified at time of analysis; real-world risk is constrained by the physical access prerequisite and the specific MAX32xxx hardware dependency.

RemediationAI

Apply the upstream Zephyr fix available at commit a0d8f786559355fb3b38e34799e1ae491ba9545c (https://github.com/zephyrproject-rtos/zephyr/commit/a0d8f786559355fb3b38e34799e1ae491ba9545c), which adds NULL-buffer checks in both udc_event_xfer_out_done() and the IN-done handler that return early with UDC_EVT_ERROR/-ENOBUFS when udc_buf_get() returns NULL. A specific patched release version is not independently confirmed from the available references - the fix is available as an upstream commit, so downstream integrators and SDK vendors should verify when the fix is included in a tagged Zephyr release via the security advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-58p9-6mjq-rf2m. As a compensating control where patching is not immediately possible, restricting USB port access to trusted hosts (physical port locks, USB host authentication dongles, or disabling the USB device role at the application layer if not functionally required) eliminates the attack vector entirely without software trade-offs. Disabling the USB interface removes all USB-dependent functionality, which may be unacceptable in production.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The defect resides in drivers/usb/udc/udc_max32.c, the Zephyr USB Device Controller driver for Analog Devices (formerly Maxim) MAX32xxx microcontrollers (DTS compatible string adi_max32_usbhs). CWE-476 (NULL Pointer Dereference) captures the root cause: udc_buf_get(ep_cfg) returns NULL when the endpoint FIFO is empty, and the return value is passed directly to net_buf_add() without a NULL guard. The architectural vulnerability stems from Zephyr's split interrupt/thread model: transfer-completion events (XFER_OUT_DONE, XFER_IN_DONE) are queued in interrupt context but processed asynchronously by the driver thread. During this window, the EP0 OUT/IN FIFOs can be legitimately drained by udc_setup_received() - which clears both FIFOs on any new SETUP packet - or by dequeue/disable/purge paths. Because USB hosts are permitted by the USB specification to send a new SETUP packet at any time to abort a pending control transfer, the triggering condition is achievable through standards-compliant host behavior without any exploit-specific tooling. The CPE cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* with a wildcard version reflects that the flaw was introduced at v4.4.0 when the driver was first merged.

Know when Zephyr gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (zephyr) PRIMARY 4.6 MEDIUM
AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 4.6 MEDIUM

Physical USB bus access required (AV:P); attacker acts as USB host needing no credentials (PR:N); impact is crash only with no confidentiality or integrity effect (A:H, C:N, I:N).

3.1 AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

Attack Vector
Physical
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

The MAX32xxx USB device controller driver (drivers/usb/udc/udc_max32.c, compatible adi_max32_usbhs) dereferenced an endpoint buffer in its OUT and IN transfer-completion handlers without checking it for NULL. udc_event_xfer_out_done() called net_buf_add(buf, ep_request->actlen) immediately after buf = udc_buf_get(ep_cfg), where udc_buf_get() 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 udc_setup_received() 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 XFER_OUT_DONE event to be processed against an empty FIFO, producing net_buf_add(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 UDC_EVT_ERROR/-ENOBUFS in both the OUT-done and IN-done handlers.

Threat Intelligence Overview

EPSS Score
0.2%
Top 92% exploitable
Prevalence
Low
niche embedded MCU family, limited Zephyr v4.4.0 production deployments
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

23
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +23
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)CVE.org

cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy