Skip to main content

Zephyr RTOS CVE-2026-10672

| EUVDEUVD-2026-43699 CRITICAL
Out-of-bounds Read (CWE-125)
2026-07-14 zephyr
9.1
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Gain LwM2M server role or on-path position on weak/no DTLS
  2. Delivery
    WRITE 128-254 char URI to /5/0/1
  3. Exploit
    Truncated non-terminated copy into context.uri
  4. Execution
    strlen/URL parsing over-reads adjacent memory
  5. Persist
    Over-read bytes appended to outbound CoAP request
  6. Impact
    Leak device memory to server or crash device

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

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

Exploitation Conditions

Requires the device to be built with the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT firmware-pull feature (Zephyr 3.0.0-4.4.0), and requires the attacker to write the Firmware Update Package URI resource /5/0/1 with a string 128-254 characters long. Concretely that means occupying the role of the LwM2M management server - normally an authenticated (D)TLS peer authorized to write device resources - OR being an on-path attacker on a LwM2M session that lacks strong DTLS protection. Limiting factors: devices without the pull-support Kconfig option are not affected; a session protected by properly configured mutual DTLS blocks the on-path variant and leaves only a compromised/malicious authorized server as the vector; and the impact is limited to memory over-read (disclosure of adjacent static memory and device crash), not code execution or data modification.

Impact

The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H, 9.1) treats this as remote, unauthenticated, low-complexity - but that scoring is generous relative to the described attack model, which requires the attacker to occupy the position of the LwM2M management server (an authorized, typically DTLS-authenticated write to /5/0/1) or to be on-path on a session lacking strong DTLS. In practice the prerequisite is a malicious/compromised management server or a downgraded/weak transport, which is closer to PR:L or AC:H than PR:N - verify the trust model against your deployment. The corroborating signals argue against panic: EPSS is 0.28% (20th percentile), there is no CISA KEV entry, and SSVC records Exploitation=poc, Automatable=yes, Technical Impact=partial. The 'partial' technical impact and low EPSS align with a read-only over-read (no code execution, no integrity impact) whose worst outcomes are memory disclosure to the managing server and device crash, rather than full takeover. Net: a genuine, patch-worthy memory-safety bug for fielded IoT devices, but the real-world priority is moderate - driven by the plausibility of a rogue/compromised LwM2M server or unprotected DTLS in your fleet, not by the raw 9.1.

Exploit ScenarioDerived

A LwM2M management server that has been compromised, or an attacker positioned on-path against a device whose LwM2M session lacks strong DTLS, issues a WRITE to the Firmware Update Package URI resource (/5/0/1) containing a URI of 128-254 characters. The device copies only the first 128 bytes with no terminator, then strlen/URL parsing walks into adjacent static memory; those over-read bytes are appended to the device's next outbound CoAP request back to the server (leaking device memory) or trigger a fault that crashes the device. Per the SSVC framework a proof-of-concept exists and the technique is automatable, though no active exploitation is recorded in CISA KEV.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv2 – Aug 06, 2026

Out-of-bounds read in the Zephyr RTOS LwM2M firmware-update pull client (lwm2m_pull_context.c) lets a malicious or compromised LwM2M management server - or an on-path attacker on a session without strong DTLS - leak adjacent device memory and crash devices by writing an over-long firmware Package URI (/5/0/1). Because the Firmware-Update object stores the URI in a 255-byte buffer but the pull context copies exactly 128 bytes into a fixed buffer with no NUL terminator, subsequent strlen-based parsing over-reads static memory that is then appended to outbound CoAP requests. It affects Zephyr 3.0.0 through 4.4.0 on the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT path; there is no CISA KEV listing, EPSS is low (0.28%), and per the SSVC framework a proof-of-concept exists.

Earlier versions of this analysis (1)
v1 Jul 14, 2026 - 15:36 CVSS 8.2

Out-of-bounds memory read in the Zephyr RTOS LwM2M firmware-update pull client (subsys/net/lib/lwm2m/lwm2m_pull_context.c) lets a LwM2M management server — or an on-path attacker on a session lacking strong DTLS — leak adjacent device memory and crash the device by writing an over-length Package URI (resource /5/0/1). Affected releases span v3.0.0 through v4.4.0 with the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT path enabled. No public exploit identified at time of analysis; a vendor patch is available and EPSS/KEV signals are absent.

RemediationAI

Vendor-released patch: Zephyr 4.5.0 - upgrade affected devices from any 3.0.0-4.4.0 build to 4.5.0 or later, or backport commit 99a164df5cea5af76e32b57c6d51854f018969a2, which adds a strlen(uri) >= sizeof(context.uri) guard returning -ENOMEM and replaces memcpy with strcpy to guarantee a bounded, NUL-terminated buffer. If you cannot rebuild firmware immediately, the most direct compensating control is to disable the firmware pull path by unsetting CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT (trade-off: over-the-air pull-style FOTA via LwM2M is lost, so plan an alternative update mechanism); alternatively enforce strong, mutually-authenticated DTLS on all LwM2M sessions and restrict which management servers may write resource /5/0/1, which closes the on-path/rogue-server vector without removing FOTA but does not protect against an already-trusted-but-compromised server. Where feasible, also constrain or validate Package URI length before it reaches the device. Full details are in advisory GHSA-rf6j-4mpp-j9mf (https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-rf6j-4mpp-j9mf).

Affected VersionsENISA

Zephyr 3.0.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 affected component is Zephyr's Lightweight M2M (LwM2M) implementation, a UDP/CoAP-based device-management protocol (OMA LwM2M) commonly secured with DTLS. The firmware-update 'pull' mechanism (object /5, Firmware Update; resource /5/0/1, Package URI) downloads firmware from a URI the management server writes into the device. The root cause is CWE-125 (out-of-bounds read) arising from an unterminated string: subsys/net/lib/lwm2m/lwm2m_pull_context.c performed memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copying exactly the destination size (CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, default 128) with no length check and no NUL termination, even though the source Package URI buffer holds up to 255 bytes. The truncated, non-terminated buffer is then treated as a C string by http_parser_parse_url(context.uri, strlen(context.uri), ...), by strlen-based CoAP URI-Path/Proxy-URI option appends, and by lwm2m_parse_peerinfo(), so parsing runs past the 128-byte buffer into adjacent static memory. The over-read bytes are copied into outbound CoAP requests to the server/proxy (information disclosure) and can fault the device (denial of service). The bug was introduced by the pull-context refactor first released in v3.0.0; the CPE cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* confirms the Zephyr project as the affected product.

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 HIGH
NVD 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
vuln.today AI 8.1 HIGH

Network vector, but exploitation needs an authorized LwM2M server session (or weak-DTLS on-path), so PR:L; over-read yields high confidentiality/availability impact and no integrity change.

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

Primary rating from Vendor (zephyr).

CVSS VectorNVD

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

Lifecycle Timeline

4
Analysis Updated
Aug 06, 2026 - 17:58 vuln.today
v2 - CVSS changed
Severity Changed
Aug 06, 2026 - 17:52 NVD
HIGH CRITICAL
CVSS changed
Aug 06, 2026 - 17:52 NVD
8.2 (HIGH) 9.1 (CRITICAL)
CVE Published
Jul 14, 2026 - 15:02 cve.org
HIGH 8.2

DescriptionNVD

subsys/net/lib/lwm2m/lwm2m_pull_context.c copied the firmware-update Package URI into a fixed static buffer (context.uri, size CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, default 128) with memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copying exactly the destination size with no length validation. The Firmware-Update object stores the server-supplied Package URI (/5/0/1) in a 255-byte buffer, so a LwM2M management server (or an on-path attacker on a session lacking strong DTLS) can WRITE a URI of 128-254 characters; only the first 128 bytes are then copied into context.uri with no NUL terminator. That buffer is subsequently consumed as a C string by http_parser_parse_url(context.uri, strlen(context.uri), ...), strlen-based CoAP URI-path/PROXY-URI option appends, and lwm2m_parse_peerinfo(), causing an out-of-bounds read of adjacent static memory. The over-read bytes are appended to outbound CoAP requests (information disclosure of adjacent device memory to the server/proxy) and can crash the device (denial of service). The vulnerable copy was introduced by the pull-context refactor (first released in v3.0.0) and is present through v4.4.0; the default-on CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT path is affected. The fix adds a strlen(uri) >= sizeof(context.uri) check returning -ENOMEM and switches to strcpy(), guaranteeing a bounded, NUL-terminated buffer.

Executive ViewAI

Why It Matters

A memory disclosure and denial-of-service vulnerability in Zephyr RTOS 3.0.0-4.4.0 affects firmware-update components enabled by default, exposing adjacent device memory and enabling remote crashes. Exploitation requires either compromise of the LwM2M management server or man-in-the-middle access to weak DTLS sessions; organizations operating IoT or embedded systems in LwM2M-managed environments face data leakage risk and operational disruption.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular open-source IoT RTOS, LwM2M FOTA a common but not universal subset
Data Quality
7 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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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.

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