Skip to main content

Zephyr RTOS CVE-2026-12051

| EUVDEUVD-2026-55939 MEDIUM
NULL Pointer Dereference (CWE-476)
2026-08-11 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
    Control USB host physically
  2. Delivery
    Send valid DFU_DNLOAD data block
  3. Exploit
    Issue GET_STATUS to advance to DFU_DNLOAD_IDLE
  4. Install
    Send zero-length DFU_DNLOAD terminator
  5. C2
    NULL buf pointer dereferenced in handle_download()
  6. Execute
    Fatal CPU fault triggered
  7. Impact
    Device crash or 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

Exploitation requires all four of the following concrete conditions: (1) the target device must run Zephyr's experimental device_next USB stack, not the legacy USB stack; (2) the DFU class must be compiled in and enabled with a registered firmware image (the image->write_cb callback must be set); (3) the attacker must first advance the device to DFU_DNLOAD_IDLE state by successfully sending at least one valid DFU_DNLOAD data block followed by a GET_STATUS - this means a partial, valid firmware download initiation is required before the crash can be triggered; (4) the attacker must physically control the USB host attached to the device. Exploitation is strictly limited to availability impact (device crash/reset); the NULL+offset read does not provide a code execution primitive and the CVE description explicitly confirms no memory corruption or information disclosure path exists.

Impact

The CVSS 4.6 score with AV:P (Physical) accurately reflects the constrained attack surface: exploitation requires direct control of a USB host physically connected to the target device, limiting realistic attacker populations to insider threats, supply chain scenarios, malicious charging stations, or deliberate physical attack. The attack complexity is low once physical access exists, but the prerequisite of advancing the device to DFU_DNLOAD_IDLE state (a valid prior download block plus GET_STATUS) adds a non-trivial sequencing step. Impact is bounded to a device crash or reset - the CVE description and commit diff both explicitly rule out memory corruption and code execution. EPSS data was not provided in the input, and the vulnerability is not listed in CISA KEV. No public exploit code is known. The vulnerability is also scoped to the experimental device_next USB stack, narrowing the at-risk population further. The 'Buffer Overflow' and 'Information Disclosure' tags in the input metadata directly conflict with the CVE description and should be treated as erroneous metadata tagging artifacts. Real-world priority is low except in threat models where physical USB access by adversaries is a concern.

Exploit ScenarioDerived

An attacker with control of a USB host connected to a vulnerable Zephyr device sends one valid DFU_DNLOAD data block followed by a GET_STATUS request to advance the device to DFU_DNLOAD_IDLE state, then sends a zero-length DFU_DNLOAD terminator. The handle_download() function dereferences the NULL buf pointer, triggering a fatal CPU fault that crashes or resets the device. No public exploit code is known; the attack steps are fully derivable from the DFU protocol specification and the CVE description.

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 – Aug 11, 2026

NULL pointer dereference in Zephyr RTOS's experimental device_next USB DFU class crashes any device where DFU download is enabled when a USB host sends a zero-length DFU_DNLOAD terminator after initiating a valid transfer. The result is a fatal CPU fault causing device crash or reset - impact is strictly limited to availability, with the vendor and commit diff explicitly confirming no memory corruption or information disclosure. No public exploit has been identified at time of analysis, and exploitation requires physical control of the attached USB host.

RemediationAI

Apply the upstream fix from commit 552ca371257597b71490482d5cc597157ea60f12, which adds a NULL-guard in handle_download() before accessing the buf net_buf pointer, resolving the crash on zero-length DFU_DNLOAD requests. Refer to the Zephyr GitHub Security Advisory GHSA-vhvq-q6rw-jvm4 at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-vhvq-q6rw-jvm4 for additional context and version guidance. Note that the patch is available from an upstream commit rather than a tagged release; a specific patched release version has not been independently confirmed from the available data. For devices where patching is not immediately feasible, disabling DFU download support entirely - by not registering an image with the DFU class - eliminates the vulnerable code path with no functional side effect for devices that do not require over-USB firmware updates. Restricting physical USB port access (port blocking, enclosures, or host allow-listing) provides an additional environmental layer but does not fix the underlying code defect.

Affected VersionsENISA

Zephyr 4.4.0 <4.5.0

Affected Packages

euvd zephyr fix: 4.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

The flaw is in subsys/usb/device_next/class/usbd_dfu.c within Zephyr's experimental device_next USB stack (distinct from the legacy USB stack). The DFU (Device Firmware Update) USB class protocol terminates a firmware download session with a zero-length DFU_DNLOAD request; the USB core correctly passes buf == NULL to the class handler in this case. The handle_download() function previously computed MIN(setup->wLength, buf->len) and passed buf->data to the image write callback without any NULL check on buf, resulting in a NULL+offset memory read. CWE-476 (NULL Pointer Dereference) precisely classifies the root cause. The upstream fix (commit 552ca371) inserts an explicit if (buf != NULL) guard so that a zero-length, NULL-data transfer is forwarded to the write callback instead of crashing. The CPE cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* covers all Zephyr versions containing the device_next DFU implementation.

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 host control required (AV:P); no auth needed on the device itself (PR:N); impact is crash-only with no confidentiality or integrity effect (C:N/I:N/A:H).

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 USB DFU class implementation in Zephyr's new (experimental) device_next USB device stack contains a NULL pointer dereference in handle_download() (subsys/usb/device_next/class/usbd_dfu.c). The handler computes MIN(setup->wLength, buf->len) and passes buf->data to the image write callback without checking that the buf net_buf pointer is non-NULL.

The handler is reached over the USB control endpoint, driven by the USB host. For a DFU_DNLOAD (download) request with no Data OUT stage - notably the zero-length terminating download that the DFU protocol uses to end a firmware transfer - the USB core invokes the class handler with a NULL buffer. After the device has been advanced to the DFU_DNLOAD_IDLE state (by sending one valid download block and a GET_STATUS), a zero-length DFU_DNLOAD reaches handle_download() with buf == NULL, dereferencing it.

The result is a NULL+offset read that triggers a fatal CPU fault, i.e. a denial of service (device crash/reset). The attacker is whatever controls the USB host the device is attached to; DFU download support must be enabled with a registered image. There is no memory corruption or information disclosure - impact is limited to availability. The fix adds an explicit if (buf != NULL) guard so the callback receives a zero-length, NULL-data transfer instead of crashing.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
embedded RTOS for IoT; experimental USB stack limits real footprint
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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 buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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

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