Skip to main content

Zephyr RTOS CVE-2026-10642

| EUVDEUVD-2026-39106 MEDIUM
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-06-24 zephyr
4.6
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Recon
    Identify Zephyr system using PL011 UART with CTS flow control enabled
  2. Delivery
    Gain physical or logical control of wired CTS peer device
  3. Exploit
    Wait for or trigger UART transmission from Zephyr host
  4. Install
    De-assert CTS signal during active transmission
  5. C2
    pl011_fifo_fill() returns 0 inside unbounded software loop
  6. Execute
    Loop exit condition becomes unreachable
  7. Impact
    Transmitting thread spins indefinitely, stalling UART transport

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
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 both of the following conditions simultaneously: (1) CTS hardware flow control must be enabled on the PL011 UART instance, configured either statically via the devicetree hw-flow-control property or dynamically at runtime via UART_CFG_FLOW_CTRL_RTS_CTS - this is not the default in many Zephyr configurations; and (2) the attacker must be able to de-assert the CTS signal on the physical UART CTS pin, either by controlling the wired peer device directly or by compromising firmware on that device. The Zephyr build must be v4.1.0 through v4.4.0 running on hardware with a PL011 UART peripheral. Exploitation is not possible if CTS flow control is disabled, if the CTS line is unconnected or held asserted, or if the system runs a Zephyr version outside the v4.1.0-v4.4.0 range. The attack cannot be launched remotely over any network; physical or hardware-adjacent access to the UART bus is mandatory, and this is the primary limiting factor for defenders assessing realistic exposure.

Impact

The reported CVSS 3.1 score of 6.5 uses vector AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, but the Adjacent-Network designation merits scrutiny: triggering the hang requires direct electrical control of the UART CTS hardware line, which is arguably an AV:P (Physical) scenario rather than a network-adjacent one. This means real-world exploitability is more constrained than the score implies. No EPSS data was provided, and the vulnerability does not appear in the CISA KEV catalog; no public exploit code has been identified. The practical attack population is further limited by the non-default prerequisite that CTS hardware flow control must be explicitly enabled. Despite the absence of weaponized exploits, the hang is deterministic and requires no special knowledge once an attacker has the necessary physical access. The availability-only impact reduces urgency for most deployments, but systems where UART continuity is safety-critical - particularly Bluetooth HCI H4 stacks layered over UART - face complete transport-layer stalls with no recovery short of a reset.

Exploit ScenarioDerived

An attacker who has physical control of - or has compromised - a device wired to the UART CTS pin of a Zephyr v4.1.0-v4.4.0 system (for example, a Bluetooth module connected via HCI H4 over UART with CTS flow control enabled) simply holds the CTS line de-asserted while the Zephyr host initiates a transmission. The pl011_irq_tx_enable() loop spins indefinitely, permanently blocking the transmitting thread and stalling the UART transport layer; no exploit code or elevated privilege is required beyond physical or logical control of the CTS signal.

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 – Jun 24, 2026

Infinite-loop denial of service in the Zephyr RTOS PL011 UART driver (v4.1.0-v4.4.0) permanently stalls any thread that calls uart_irq_tx_enable() - including the Bluetooth HCI H4 send path - when CTS hardware flow control is enabled and the wired peer withholds CTS during transmission. The root cause is a software workaround loop (CWE-835) that compensates for the PL011 controller's level-transition TX interrupt behavior but never exits when pl011_fifo_fill() returns 0 due to a blocked CTS line. No public exploit has been identified and the vulnerability is not listed in the CISA KEV catalog; exploitation requires physical or hardware-adjacent control of the UART CTS pin, materially constraining real-world risk.

RemediationAI

Apply the upstream fix from commit 68e702294b711eadfe7b4fadedd46d7c87fe8f3d (https://github.com/zephyrproject-rtos/zephyr/commit/68e702294b711eadfe7b4fadedd46d7c87fe8f3d), which adds a CTS-blocking check inside the pl011_irq_tx_enable() loop - exiting when (uart->cr & PL011_CR_CTSEn) && !(uart->fr & PL011_FR_CTS) and arming PL011_IMSC_CTSMIM so transmission resumes automatically when CTS re-asserts. A specific patched release version has not been independently confirmed from the provided references; monitor the Zephyr project changelog and GHSA-3fgh-73jh-2q5j for an official release designation. As an interim workaround, remove the hw-flow-control devicetree property or avoid runtime UART_CFG_FLOW_CTRL_RTS_CTS configuration to disable CTS flow control; note this trades flow-control protection for DoS immunity and may cause data overrun on high-throughput links. If disabling flow control is unacceptable, restrict physical access to UART CTS pins and treat all wired peer devices as untrusted hardware boundaries.

Affected VersionsENISA

Zephyr 4.1.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 ARM PrimeCell PL011 UART peripheral fires TX interrupts on level transitions rather than continuously while the FIFO has space. To compensate, the Zephyr driver (drivers/serial/uart_pl011.c) implements a software polling loop in pl011_irq_tx_enable() that repeatedly invokes the application callback while PL011_IMSC_TXIM remains set. CWE-835 (Loop with Unreachable Exit Condition) manifests when CTS hardware flow control is active - configured via the devicetree hw-flow-control property or runtime UART_CFG_FLOW_CTRL_RTS_CTS - because a de-asserted CTS causes pl011_fifo_fill() to drain zero bytes yet pending application data prevents the loop's exit condition from clearing. The affected CPE is cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*, specifically versions v4.1.0 through v4.4.0; the defective loop was introduced by commit b783bc8448ef in February 2025. Impact is strictly availability: there is no memory-safety, confidentiality, or integrity consequence documented in the advisory.

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

Triggering the hang requires direct electrical control of the physical UART CTS wire, making AV:P more accurate than the reported AV:A; AC:L because once CTS flow control is enabled the trigger is a trivial signal state; C/I remain N as confirmed by the advisory.

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

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

Lifecycle Timeline

1
CVSS changed
Jul 14, 2026 - 19:22 NVD
6.5 (MEDIUM) 4.6 (MEDIUM)

DescriptionCVE.org

The Zephyr PL011 UART driver (drivers/serial/uart_pl011.c) contains an unbounded software loop in pl011_irq_tx_enable() that repeatedly invokes the interrupt-driven application callback while the TX interrupt mask bit (PL011_IMSC_TXIM) is set, to work around the controller's level-transition TX-interrupt behavior. When CTS hardware flow control is enabled (devicetree hw-flow-control or runtime UART_CFG_FLOW_CTRL_RTS_CTS) and the wired serial peer de-asserts CTS, the controller stops draining the TX FIFO; pl011_fifo_fill() then returns 0 on every call while the application still has pending data and therefore never disables the TX interrupt. The loop condition never clears, so the thread that called uart_irq_tx_enable() (e.g. h4_send() in the Bluetooth HCI H4 driver) spins indefinitely, hanging the executing context and stalling the transport - a denial of service (CWE-835). An attacker controlling the device attached to the UART's CTS line can trigger the hang by withholding CTS during transmission. Impact is availability only; there is no memory-safety, confidentiality, or integrity consequence. The vulnerable loop was introduced in commit b783bc8448ef (Feb 2025) and shipped in releases v4.1.0 through v4.4.0. The fix breaks out of the loop when CTS is blocking and arms the CTS modem-status interrupt to resume transmission when CTS re-asserts.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Low
niche embedded RTOS, deployed primarily in constrained IoT and bare-metal hardware
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 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
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

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