Skip to main content

Zephyr RTOS CVE-2026-10648

MEDIUM
NULL Pointer Dereference (CWE-476)
2026-06-29 zephyr
5.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Gain serial/UART or shell-console link access
  2. Delivery
    Transmit rapid SMP fragment flood
  3. Exploit
    Exhaust 4-entry MCUmgr buffer pool
  4. Execution
    smp_packet_alloc() returns NULL
  5. Persist
    net_buf_reset() writes through NULL pointer
  6. Impact
    Processor fault and device crash

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 the attacker to have access to the MCUmgr serial, UART, or shell-console transport link on the target device - specifically, one of the three affected transport drivers (smp_uart.c, smp_raw_uart.c, or smp_shell.c) must be compiled into the firmware. The device must run Zephyr v4.4.0 with MCUmgr serial transport enabled, which is a non-default feature that must be explicitly included in the board or application configuration. The default buffer pool size of 4 (CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT) makes exhaustion trivially achievable. Exploitation is limited by: the requirement for physical or local access to the serial/UART/console interface (CVSS AV:L), the need for MCUmgr transport to be enabled in the specific firmware build, and restriction to Zephyr v4.4.0 builds prior to the fix commit. No network-based exploitation path exists; an attacker must be physically present or have shell-level access to the host connected to the device's console port.

Impact

The CVSS 3.1 base score of 6.2 (Medium) with vector AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H accurately reflects the constrained attack surface: exploitation requires physical or logical presence on the serial or shell-console link, which substantially limits the attacker population compared to network-reachable vulnerabilities. Attack complexity is genuinely low once the interface is accessible - flooding with SMP packets until the 4-entry pool is exhausted is trivial. The Availability:High rating is warranted because the result is a hard device fault and reset, not a graceful degradation. There is no confidentiality or integrity impact. No EPSS data was provided in the intelligence set, and the vulnerability carries no CISA KEV listing and no known public POC. The primary real-world risk is physical-access adversaries or insider threats targeting embedded/IoT devices running MCUmgr-enabled Zephyr v4.4.0. The extremely small buffer pool (4 entries) means the denial-of-service condition is reliably reproducible without sophisticated tooling. For devices in safety-critical or always-available roles (industrial controls, medical devices), the crash impact may exceed what the medium CVSS score implies.

Exploit ScenarioDerived

An attacker with physical or logical access to a UART or shell-console port on a Zephyr v4.4.0 device rapidly sends a stream of MCUmgr SMP packet fragments, driving all four entries in the shared MCUmgr buffer pool to allocated-but-not-freed state. The next fragment allocation returns NULL, mcumgr_serial_process_frag() calls net_buf_reset() on it without checking, and the resulting NULL pointer write causes a processor exception, crashing and resetting the device. No exploit code has been publicly identified, but the attack requires only a serial terminal and knowledge of the SMP packet format.

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

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

Alert me

AnalysisAIv1 – Jun 29, 2026

Denial of service in Zephyr RTOS v4.4.0 allows an attacker with access to a serial, UART, or shell-console interface to crash an affected embedded device by exhausting the MCUmgr shared buffer pool and triggering a NULL pointer dereference. The defect in mcumgr_serial_process_frag() (CWE-476) was introduced during the MCUmgr rework and manifests in default builds where assertion checks are compiled out, making the write-through-NULL a hard fault rather than a caught assertion. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but exploitation is straightforward for any attacker with interface access.

RemediationAI

The upstream fix is available as commit 6f363ec6f7fd6ae9ed7ca2ae66fd9c82dce31c59 in the Zephyr project repository (https://github.com/zephyrproject-rtos/zephyr/commit/6f363ec6f7fd6ae9ed7ca2ae66fd9c82dce31c59); a patched tagged release version has not been independently confirmed from available data - project maintainers should monitor the Zephyr release channel for a version incorporating this fix. Developers building from source should cherry-pick or rebase to include the fix commit. As a compensating control, increasing CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT above the default of 4 raises the number of floods required to exhaust the pool, but does not eliminate the NULL dereference - it only makes the condition harder to trigger transiently. Disabling MCUmgr serial/UART/shell transport entirely (by removing CONFIG_MCUMGR_TRANSPORT_UART, CONFIG_MCUMGR_TRANSPORT_UDP_SMP, or CONFIG_MCUMGR_TRANSPORT_SHELL from the build configuration) is an effective workaround if the management interface is not required in production, with the trade-off of losing over-the-air firmware update and management capability. Physical access controls on serial/console ports reduce the attacker population but are not a software mitigation. The security advisory is at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-j64f-h3ww-f32c.

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

Zephyr RTOS (cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*) is an open-source real-time operating system targeting resource-constrained embedded and IoT devices. Its MCUmgr subsystem provides a management protocol (SMP) over multiple transports including UART (smp_uart.c, smp_raw_uart.c) and shell-console (smp_shell.c). Each incoming SMP packet fragment triggers a buffer allocation from a shared kernel buffer pool sized by CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT (default 4). The root cause is CWE-476 (NULL Pointer Dereference): mcumgr_serial_process_frag() invokes net_buf_reset() on the pointer returned by smp_packet_alloc() without first checking whether the allocation succeeded. smp_packet_alloc() uses net_buf_alloc(K_NO_WAIT), which returns NULL immediately when the pool is exhausted rather than blocking. Because __ASSERT_NO_MSG is compiled out in default Zephyr builds, net_buf_simple_reset proceeds to write buf->len = 0 and buf->data = buf->__buf through the NULL pointer, causing a processor fault and device reset. The fix, available in upstream commit 6f363ec6, relocates the NULL guard ahead of the reset call.

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 MEDIUM
NVD 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 6.2 MEDIUM

Local vector confirmed by serial/UART/console-only attack path; PR:N because no authentication is enforced on the physical link itself; A:H for hard device fault; no confidentiality or integrity impact.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/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 VectorNVD

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

Lifecycle Timeline

1
CVSS changed
Jul 01, 2026 - 14:07 NVD
6.2 (MEDIUM) 5.5 (MEDIUM)

DescriptionNVD

mcumgr_serial_process_frag() in subsys/mgmt/mcumgr/transport/src/serial_util.c calls net_buf_reset() on the result of smp_packet_alloc() before checking it for NULL. smp_packet_alloc() uses net_buf_alloc(K_NO_WAIT) against the shared MCUmgr packet pool (CONFIG_MCUMGR_TRANSPORT_NETBUF_COUNT, default 4), which returns NULL when the pool is exhausted. In default builds the __ASSERT_NO_MSG in net_buf_reset is a no-op, so net_buf_simple_reset writes through the NULL pointer (buf->len = 0; buf->data = buf->__buf), causing a fault/crash. The fragment data reaches this code from attacker-controlled bytes on the MCUmgr serial/UART/shell-console transports (smp_uart.c, smp_raw_uart.c, smp_shell.c), and a fresh buffer is allocated at the start of essentially every new packet. An attacker on the serial/console link can flood the transport to drive the 4-entry buffer pool to exhaustion and induce the NULL dereference, crashing the device (denial of service). The defect was introduced after the original MCUmgr rework and shipped in Zephyr v4.4.0. The fix moves the NULL check ahead of net_buf_reset.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
embedded IoT/industrial RTOS with niche but growing deployment
Social Media
2
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.1%
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

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
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)NVD

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