Skip to main content

Zephyr RTOS CVE-2026-10646

| EUVDEUVD-2026-39980 HIGH
Use After Free (CWE-416)
2026-06-28 zephyr
7.4
CVSS 3.1 · Vendor: zephyr
Share

Severity by source

Vendor (zephyr) PRIMARY
7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
vuln.today AI
7.4 HIGH

Network-influenceable via spoofable DNS id (AV:N) needing no auth or interaction (PR:N/UI:N) but gated by a timeout/race window (AC:H); stack corruption gives I:H/A:H with no confidentiality impact (C:N).

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Source Code Evidence Fetched
Jun 28, 2026 - 05:15 vuln.today
Analysis Generated
Jun 28, 2026 - 05:15 vuln.today

DescriptionCVE.org

Zephyr's BSD-sockets getaddrinfo() implementation (subsys/net/lib/sockets/getaddrinfo.c) passes a pointer to a stack-allocated state object (struct getaddrinfo_state ai_state) as the user_data of an asynchronous DNS resolver query. The socket layer waits on a semaphore with a timeout deliberately set slightly longer than the resolver's own per-query timeout. When that semaphore wait nonetheless times out (-EAGAIN) - which can occur when the resolver's timeout work is delayed by workqueue contention, or in the documented multi-retry configuration where CONFIG_NET_SOCKETS_DNS_TIMEOUT exceeds CONFIG_NET_SOCKETS_DNS_BACKOFF_INTERVAL - the pre-fix code retries the query (goto again) without cancelling the previous one and without resetting the semaphore. The previous query slot remains active in the resolver with its callback and the stack pointer as user_data, and ai_state-dns_id is overwritten so the stale query can no longer be cancelled. A subsequent DNS response delivered over UDP and matched by its 16-bit transaction id (in dispatcher_cb()/dns_read()), or the resolver's own delayed query-timeout work, then invokes dns_resolve_cb() against the now out-of-scope stack frame, writing through the stale pointer (state-status, state-idx, state-ai_arr[], and k_sem_give()). Because the triggering response is network-delivered and its 16-bit id is spoofable/replayable by an on- or off-path attacker, this is a network-influenceable use-after-return that can corrupt reused stack memory, leading to crashes/denial of service or memory corruption. The fix cancels the timed-out query by name and type before retrying and resets the local semaphore, eliminating the stale callback path. Affected: Zephyr v4.0.0 through v4.4.0.

AnalysisAI

Memory corruption and denial of service in Zephyr RTOS (v4.0.0 through v4.4.0) arises in the BSD-sockets getaddrinfo() implementation, where a timed-out DNS query is retried without cancelling the prior query, leaving a callback holding a pointer into a stack frame that goes out of scope after getaddrinfo() returns. A network-delivered DNS response matched by its spoofable 16-bit transaction id, or the resolver's own delayed timeout work, then writes through that stale pointer, enabling crashes or reused-stack corruption. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
Identify Zephyr device performing DNS lookups
Delivery
Induce or await semaphore timeout and query retry
Exploit
Inject spoofed UDP DNS response with matching 16-bit id
Execution
Trigger dns_resolve_cb() against out-of-scope stack frame
Persist
Write through stale ai_state pointer
Impact
Crash or corrupt reused stack memory

Vulnerability AssessmentAI

Exploitation The target application must call the BSD-sockets getaddrinfo() against an asynchronous DNS resolver, and the socket-layer semaphore wait must time out (-EAGAIN) so the pre-fix retry path ('goto again') executes - which the advisory states happens when the resolver's timeout work is delayed by workqueue contention, or in the documented configuration where CONFIG_NET_SOCKETS_DNS_TIMEOUT exceeds CONFIG_NET_SOCKETS_DNS_BACKOFF_INTERVAL (the multi-retry case). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 3.1 vector CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H (7.4 High) is internally consistent with the description: the trigger is network-influenceable (AV:N), needs no authentication (PR:N) or user interaction (UI:N), but depends on a timing race - the semaphore wait must time out due to workqueue contention or a specific multi-retry timeout configuration, and the attacker must land a response with a matching 16-bit id - which justifies AC:H. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario An attacker on or off the network path observes or guesses that a Zephyr device is performing getaddrinfo() lookups and floods spoofed UDP DNS responses carrying matching 16-bit transaction ids while the device is under workqueue load or using the multi-retry timeout configuration. After the socket semaphore times out and the query is retried, a delayed callback fires against the freed stack frame and writes through the stale pointer, crashing the device or corrupting reused stack memory. …
Remediation Upstream fix available (PR/commit); released patched version not independently confirmed - apply Zephyr commit cd27da58eedb8d0fe380dd340b81ca5afa35de45 (referenced by advisory GHSA-h752-vhmf-29w6) or upgrade to the first tagged release after v4.4.0 that contains it once published. … Detailed patch versions, workarounds, and compensating controls in full report.

Recommended ActionAI

24 hours: Inventory all systems and devices running Zephyr RTOS versions 4.0.0-4.4.0 and assess network accessibility. …

Sign in for detailed remediation steps and compensating controls.

Threat intelligence, references, and detailed analysis are available after sign-in.

More in Zephyr

View all
CVE-2026-1678 CRITICAL POC
9.4 Mar 05

Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.

CVE-2026-7656 HIGH POC
8.1 Jun 29

Forged IPv6 Neighbor Discovery acceptance in the Zephyr RTOS network stack (all releases through v4.4.0) lets an adjacen

CVE-2025-2962 HIGH POC
7.5 Jun 24

CVE-2025-2962 is a denial-of-service vulnerability in a DNS implementation that triggers an infinite loop condition, all

CVE-2026-10643 HIGH
8.7 Jun 27

Out-of-bounds heap write in the Zephyr RTOS IP socket stack (recvmsg/insert_pktinfo) lets an unprivileged local userspac

CVE-2025-1675 HIGH
8.2 Feb 25

The function dns_copy_qname in dns_pack.c performs performs a memcpy operation with an untrusted field and does not chec

CVE-2025-1673 HIGH
8.2 Feb 25

A malicious or malformed DNS packet without a payload can cause an out-of-bounds read, resulting in a crash (denial of s

CVE-2025-1674 HIGH
8.2 Feb 25

A lack of input validation allows for out of bounds reads caused by malicious or malformed packets. Rated high severity

CVE-2026-8023 HIGH
7.5 Jun 29

Arbitrary file read in the Zephyr RTOS HTTP server (subsys/net/lib/http) lets an unauthenticated remote client retrieve

CVE-2026-5068 HIGH
7.6 Jun 09

Out-of-bounds write in Zephyr RTOS Bluetooth host stack allows an adjacent unauthenticated BLE peer to corrupt heap memo

CVE-2026-10638 HIGH
7.5 Jun 16

Use-after-free in Zephyr RTOS's ICMPv6 stack (v4.2.0-v4.4.0) allows an unauthenticated remote attacker to crash the netw

CVE-2026-13351 HIGH
7.5 Jun 25

Remote denial of service in the Zephyr RTOS IPv6 network stack lets unauthenticated attackers permanently halt packet re

CVE-2026-1679 HIGH
7.3 Mar 28

Buffer overflow in Zephyr RTOS eswifi socket offload driver allows authenticated local attackers to corrupt kernel memor

Share

CVE-2026-10646 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy