Skip to main content

Zephyr RTOS CVE-2026-15892

MEDIUM
Memory Leak (CWE-401)
2026-09-13 zephyr
5.3
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Recon
    Identify Zephyr device with reachable SMP transport
  2. Delivery
    Send repeated settings read/write/delete SMP commands with arbitrary key names
  3. Exploit
    Access hook rejects each command via MGMT_CB_ERROR_RC
  4. Install
    k_malloc() heap buffers leaked on every rejection
  5. C2
    Heap monotonically exhausted across sustained request stream
  6. Execute
    k_malloc() failures deny mcumgr service and degrade other heap consumers
  7. Impact
    Device requires reboot to recover

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup, leak prevention
Exploitation Conditions

Three Kconfig conditions must ALL be simultaneously true in the firmware build: (1) CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP must be explicitly selected - the default is the stack buffer type, so this requires a deliberate developer choice; (2) CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK must be enabled, meaning the application registers a callback to control settings access; and (3) the registered access hook must return MGMT_CB_ERROR_RC (not MGMT_CB_ERROR_RSN or success) to reject a request - MGMT_CB_ERROR_RC is a common rejection style but is not the only option. The SMP transport must also be reachable: exploitation over BLE requires the attacker to be within radio range and the device to accept SMP without pairing; over UDP, the device must be network-reachable. UART transport requires physical access. The access hook itself - the mechanism intended to block unauthorized access - paradoxically enables the leak when used with MGMT_CB_ERROR_RC, so the very security control triggers the vulnerability.

Impact

The vendor-assigned CVSS 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L) overstates the real-world attack complexity because it does not account for the triple configuration prerequisite: heap buffer type, access hook enabled, and a hook that returns MGMT_CB_ERROR_RC specifically. A more accurate assessment would set AC:H, yielding a score closer to 3.7. While EPSS data was not supplied, the niche configuration conditions and embedded-only deployment model suggest a low exploitation probability in practice; even a mid-sized municipal IT team in walbrzych running smart-building IoT infrastructure would need to audit which Zephyr firmware images actually select all three Kconfig options before treating this as urgent. There is no KEV listing and no public exploit, and the impact ceiling is a soft availability denial (gradual heap exhaustion) with no data loss or code execution. The most practically dangerous scenario is a product that intentionally exposes SMP over UDP or BLE to untrusted endpoints and whose firmware developer chose MGMT_CB_ERROR_RC as the hook rejection style - a common but not universal pattern.

Exploit ScenarioDerived

An attacker within Bluetooth LE range (or UDP network reach) of a vulnerable Zephyr device sends a rapid stream of SMP settings read commands for arbitrary key names. Each request is rejected by the access hook with MGMT_CB_ERROR_RC, but the key_name and data buffers allocated by k_malloc() are never freed. After hundreds or thousands of requests - depending on the device's heap size - k_malloc() begins failing for the entire system, causing mcumgr operations and any other heap-dependent firmware component to malfunction until the device is power-cycled.

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

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

Alert me

AnalysisAIv1 – Sep 13, 2026

Heap memory exhaustion in Zephyr RTOS mcumgr SMP settings handlers allows unauthenticated attackers to trigger a monotonic heap leak by sending settings read, write, or delete commands that the application access hook rejects, ultimately depleting the kernel heap until the device must be rebooted. The three affected handlers - settings_mgmt_read(), settings_mgmt_write(), and settings_mgmt_delete() in subsys/mgmt/mcumgr/grp/settings_mgmt/src/settings_mgmt.c - allocate buffers via k_malloc() but execute a direct return bypassing the end: cleanup label whenever CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK rejects a request via MGMT_CB_ERROR_RC. The vulnerability is availability-only with no memory corruption or information disclosure; no public exploit code or CISA KEV listing exists at time of analysis.

RemediationAI

Apply commit fabc488d5b44143e5bd70dd373182c4395a816b9 from the zephyrproject-rtos/zephyr repository, which adds explicit k_free() calls for key_name and data in all three handler functions immediately before the return ret_rc; path under CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP guards. A vendor-tagged release version containing this fix is not independently confirmed beyond the commit reference; track the upstream Zephyr release notes at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rq68-wgv4-hcq3 for the patched version. If patching is not immediately feasible, the most effective workaround is switching to the default stack buffer type (omitting CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP) - this eliminates the leak path entirely at the cost of heap flexibility for large key names. Alternatively, modifying the access hook to return MGMT_CB_ERROR_RSN instead of MGMT_CB_ERROR_RC avoids the leaking code path, but this may alter the SMP error response semantics visible to management clients. Restricting SMP transport access (e.g., disabling the UDP SMP transport or enforcing BLE pairing requirements) limits the attacker's ability to send high-volume rejected requests but does not fix the underlying leak.

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's mcumgr (Micro Controller Management) subsystem implements the Simple Management Protocol (SMP) for remote device management over Bluetooth LE, UART, or UDP transports. The settings management group (CONFIG_MCUMGR_GRP_SETTINGS) provides read, write, and delete operations for Zephyr's key-value settings subsystem. When CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP is selected (as opposed to the default stack buffer), the handlers allocate key_name and (for read) data buffers via k_malloc() and rely on a goto end: pattern to call k_free() on the way out. CWE-401 (Missing Release of Memory after Effective Lifetime) manifests because the MGMT_CB_ERROR_RC rejection path in the access hook callback exits via return ret_rc rather than goto end:, bypassing all k_free() calls. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, indicating all tracked Zephyr versions with the relevant Kconfig options enabled.

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 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 3.7 LOW

AC:H reflects the triple Kconfig prerequisite (heap buffer type, access hook, MGMT_CB_ERROR_RC rejection); AV:N preserves worst-case UDP transport; A:L for gradual heap exhaustion.

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

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

DescriptionCVE.org

The mcumgr SMP settings-management group handlers settings_mgmt_read(), settings_mgmt_write(), and settings_mgmt_delete() in subsys/mgmt/mcumgr/grp/settings_mgmt/src/settings_mgmt.c allocate a key_name buffer (and, for read, a data buffer) via k_malloc() when CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP is enabled, relying on the end: label to k_free() them. When CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK is also enabled and the application access hook rejects a request by returning status MGMT_CB_ERROR_RC, the handler executed return ret_rc; directly, bypassing end: and leaking the heap allocation on every rejected request.

The settings handlers are reachable over the unauthenticated SMP transport (Bluetooth LE, UART, or UDP, depending on product configuration). The access hook is the mechanism applications use to deny unauthorized settings access, and MGMT_CB_ERROR_RC is a common rejection style, so an attacker who can send settings read/write/delete commands that the hook rejects triggers a heap leak on each attempt.

Because the leaked memory is never reclaimed until reboot, a sustained stream of rejected requests monotonically exhausts the kernel heap until k_malloc() fails, denying mcumgr service and impacting any other heap consumer on the device - a denial of service. The impact is availability-only; there is no memory corruption or information disclosure. Only configurations that select the heap buffer type, enable the access hook, and register a hook that returns MGMT_CB_ERROR_RC are affected (the default stack buffer type cannot leak).

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular RTOS for IoT and embedded firmware development
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.3%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

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