Skip to main content

Zephyr RTOS CVE-2026-10657

MEDIUM
Out-of-bounds Read (CWE-125)
2026-07-05 zephyr
5.3
CVSS 3.1 · NVD
View

Attack ChainAIDerived

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

  1. Access
    Supply short-suffix hostname via DNS API
  2. Delivery
    Invoke dns_resolve_name_internal() with CONFIG_MDNS_RESOLVER
  3. Exploit
    memcmp reads past NUL terminator
  4. Execution
    Over-read crosses unmapped memory boundary
  5. Impact
    Processor faults, device crashes

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

CONFIG_MDNS_RESOLVER must be enabled at compile time - this is the primary gate and is not a default in all Zephyr build configurations. The hostname supplied to getaddrinfo(), dns_get_addr_info(), or dns_resolve_name() must have a final label suffix shorter than 7 bytes (e.g., .org, .com, .net, .io, or a trailing dot). A crash - rather than a silent benign over-read - additionally requires that the hostname buffer be tightly allocated with no trailing slack bytes (specifically, allocated via k_usermode_string_alloc_copy to exactly strlen+1 bytes) AND that the immediately adjacent memory region be unmapped (guard page, MPU memory-domain boundary, or address sanitizer shadow). In the majority of embedded Zephyr deployments without ASAN or strict MPU domain separation, neither crash condition is met and the over-read reads harmless padding. Exploitation is strictly limited to availability (device crash); the over-read bytes are explicitly never returned to the caller, eliminating any confidentiality impact regardless of memory layout.

Impact

CVSS 3.7 (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) is well-calibrated for this vulnerability. The AC:H rating correctly captures that a crash requires two simultaneous runtime conditions beyond attacker control: the hostname buffer must be tightly allocated with no trailing slack (as produced by k_usermode_string_alloc_copy at exactly strlen+1 bytes), and the next allocation boundary must be unmapped. In typical Zephyr embedded deployments without ASAN instrumentation or strict MPU memory-domain isolation, the over-read lands in readable padding and does not fault. EPSS data is absent from the provided intelligence. No KEV listing and no POC availability confirm this is not under active exploitation. A notable data-quality conflict exists: the source tags include 'Information Disclosure', but the CVE description explicitly states 'The over-read bytes are never returned, so there is no information disclosure' - this tag should be disregarded as a tagging error. Real-world exploitability is further gated by the CONFIG_MDNS_RESOLVER compile-time flag, which constrains the affected population to firmware images specifically built with mDNS support.

Exploit ScenarioDerived

An application on a Zephyr device resolves a hostname ending in .io or .org - for example, a parsed URL from a remote configuration push - triggering dns_resolve_name_internal() with CONFIG_MDNS_RESOLVER compiled in. If the hostname was copied via k_usermode_string_alloc_copy to a buffer of exactly strlen+1 bytes and the next allocation boundary is an unmapped guard page or MPU domain fence, the 1-2 byte over-read faults the processor, crashing the device. No public exploit code has been identified at time of analysis.

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

Out-of-bounds read in Zephyr RTOS's mDNS detection logic crashes devices resolving short-suffix hostnames when CONFIG_MDNS_RESOLVER is compiled in. The flaw in dns_resolve_name_internal() reads a fixed 7 bytes from a suffix pointer regardless of the actual string length, causing a 1-2 byte over-read past the NUL terminator for suffixes like .org, .com, .net, or .io. Under the specific runtime condition of a tightly-sized allocation adjacent to an unmapped boundary (guard page, MPU domain, or ASAN), the over-read faults and crashes the device; no public exploit has been identified at time of analysis and CVSS 3.7 with AC:H accurately reflects the narrow crash preconditions.

RemediationAI

Apply commit 448a21da12c9ea28f7fd12c6894e03a987b17a27 from the Zephyr repository (https://github.com/zephyrproject-rtos/zephyr/commit/448a21da12c9ea28f7fd12c6894e03a987b17a27), which replaces memcmp(ptr, ".local", 7) with strcmp(ptr, ".local") and eliminates the over-read entirely. The exact tagged release version containing this fix is not confirmed from available data - monitor the advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-76jh-3j5f-9vq4 for the patched release. As a zero-side-effect workaround, disable CONFIG_MDNS_RESOLVER in the project's Kconfig configuration if mDNS resolution is not required by the application; this removes the vulnerable code path at compile time with no impact on standard unicast DNS resolution. If CONFIG_MDNS_RESOLVER must remain enabled and patching is not yet possible, enabling strict MPU memory-domain isolation or ASAN instrumentation in test environments will convert silent over-reads into detectable faults - this aids crash detection and root-cause diagnosis but does not prevent the denial-of-service condition in production firmware.

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 vulnerable code resides in subsys/net/lib/dns/resolve.c, function dns_resolve_name_internal(). The expression memcmp(strrchr(query, '.'), ".local", 7) locates the final dot in the hostname via strrchr() and then compares exactly 7 bytes - the length of ".local" plus its NUL terminator. CWE-125 (Out-of-bounds Read) applies: when the suffix is shorter than 6 characters (e.g., ".io" = 3 chars, ".org" = 4 chars), memcmp reads 1-3 bytes beyond the NUL terminator into adjacent memory. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, present since v1.10.0. Crucially, the code path is only compiled when the Kconfig option CONFIG_MDNS_RESOLVER is enabled; firmware images built without this option are unaffected. The fix replaces the unsafe memcmp with strcmp(ptr, ".local"), which terminates at the NUL byte and eliminates the over-read entirely.

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 LOW
NVD 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

Network-reachable via hostname input, AC:H for required tight-allocation plus unmapped-boundary runtime conditions; C:N and I:N confirmed as over-read bytes are never returned.

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 VectorNVD

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

Lifecycle Timeline

2
Severity Changed
Jul 08, 2026 - 15:07 NVD
LOW MEDIUM
CVSS changed
Jul 08, 2026 - 15:07 NVD
3.7 (LOW) 5.3 (MEDIUM)

DescriptionNVD

Zephyr's DNS resolver detects mDNS (.local) queries in dns_resolve_name_internal() (subsys/net/lib/dns/resolve.c) with memcmp(strrchr(query, '.'), ".local", 7), which always reads a fixed 7 bytes from the suffix pointer. When the resolved hostname's final label is shorter than 7 bytes (e.g. names ending in .org, .com, .net, .io, or a trailing dot), the comparison reads 1-2 bytes past the string's NUL terminator. The hostname (query) is the caller-supplied name passed through the standard getaddrinfo()/dns_get_addr_info()/dns_resolve_name() path and is influenceable by operators or remote inputs (server names from configuration, parsed URLs, or app-facing interfaces). On a tightly-sized buffer with no slack (for example a userspace getaddrinfo call where the hostname is copied with k_usermode_string_alloc_copy to exactly strlen+1 bytes), the over-read crosses the allocation boundary; if that boundary is unmapped (guard page, memory-domain boundary under MPU, or an address sanitizer) the over-read faults, causing a denial of service. The over-read bytes are never returned, so there is no information disclosure. The flaw is compiled only when CONFIG_MDNS_RESOLVER is enabled, exists since v1.10.0, and is fixed by replacing the fixed-length memcmp with a NUL-safe strcmp(ptr, ".local").

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
widely used open-source RTOS for IoT and embedded systems
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
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

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.

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