Skip to main content

Zephyr RTOS EUVDEUVD-2026-58131

| CVE-2026-12236 MEDIUM
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-08-13 zephyr
6.5
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Operate rogue BLE peripheral within Bluetooth range
  2. Delivery
    Accept connection from target Zephyr GATT client
  3. Exploit
    Wait for target to initiate BT_GATT_DISCOVER_STD_CHAR_DESC
  4. Execution
    Reply to ATT Read By Type Request with rsp->len = 0
  5. Persist
    Infinite loop traps Bluetooth host processing thread
  6. Impact
    BT subsystem hangs and watchdog resets constrained device

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 the local Zephyr device to act as a GATT client and actively initiate BT_GATT_DISCOVER_STD_CHAR_DESC discovery against a peer - the vulnerable code path in parse_read_std_char_desc() is only reached when the host sends an ATT Read By Type Request for standard characteristic descriptors and then processes the peer's response. GATT discovery is explicitly noted in the description as not requiring bonding or encryption, meaning the CVSS PR:N assignment is confirmed: no pre-established trust, credential, or encrypted session is required. The attacker must be within Bluetooth adjacency range and able to control or impersonate a GATT server that the target device connects to. Exploitation is constrained to the Bluetooth adjacency network vector (AV:A); remote internet-based exploitation is not possible. Devices that never act as GATT clients, never initiate descriptor discovery, or that have CONFIG_BT_GATT_CLIENT disabled at compile time are not reachable via this code path.

Impact

The CVSS 3.1 vector AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H scoring 6.5 is well-calibrated to the actual threat: Bluetooth adjacency bounds the attack surface to roughly 10-100 meters, eliminating internet-scale exploitation, but within that range the attack is trivially low complexity and requires no authentication, credentials, or user interaction. The high availability impact accurately reflects that a hung host processing thread disables the entire BT subsystem. On severely constrained embedded targets, a watchdog reset compounds the impact by causing device reboots. No EPSS score was included in the input data, preventing quantitative exploitation-probability comparison; this gap should be resolved before prioritization decisions are finalized. The absence of a KEV listing and of identified POC code suggests no active widespread exploitation at time of analysis, though even a mid-sized municipal IT team in gliwice deploying Zephyr-based BLE devices in a public space should treat this as urgent given that the publicly available commit diff and security advisory fully disclose the vulnerable code path and fix logic, making independent exploit development straightforward. The wildcard CPE indicates NVD has not bounded the affected version range, which is a notable data gap: defenders cannot confirm whether they are on an unaffected release without checking the specific commit.

Exploit ScenarioDerived

An attacker operating a rogue BLE peripheral or modified BLE stack within Bluetooth range waits for or induces the target Zephyr device to connect and initiate GATT standard-descriptor-value discovery. The attacker responds to the ATT Read By Type Request with a crafted response containing rsp->len = 0, causing the Zephyr Bluetooth host processing thread to enter an infinite re-parse loop. The BT subsystem hangs, and on constrained targets a watchdog reset occurs, interrupting all Bluetooth functionality until the device reboots.

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

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

Alert me

AnalysisAIv1 – Aug 13, 2026

Infinite loop denial of service in the Zephyr RTOS Bluetooth GATT client allows an unauthenticated adjacent attacker to permanently hang the Bluetooth host processing thread by sending a crafted ATT Read By Type Response with a zero-length stride value during standard descriptor discovery. Affected targets - which span all Zephyr versions per the wildcard CPE - face a hung BT subsystem and likely a watchdog reset on constrained embedded hardware, rendering Bluetooth functionality inoperative. No public exploit code or CISA KEV listing exists at time of analysis, but the upstream commit diff publicly discloses the exact offending code path, substantially lowering the barrier to exploit development.

RemediationAI

The primary remediation is to apply upstream commit 494283d469a95b294badaf45c639de433bf5e35a from the Zephyr project (https://github.com/zephyrproject-rtos/zephyr/commit/494283d469a95b294badaf45c639de433bf5e35a), which inserts a rsp->len < sizeof(struct bt_att_data) check before the parse loop, ensuring the stride is always non-zero and the loop terminates. A formally tagged patched release version has not been independently confirmed from available data - only the commit hash is known - so monitor the Zephyr security advisory at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-483r-jq2x-5cp9 for a versioned release announcement before closing remediation tickets. Where immediate patching is not feasible, consider disabling BT_GATT_DISCOVER_STD_CHAR_DESC discovery at the firmware build configuration level, which prevents the vulnerable code path from being reached entirely but reduces GATT client interoperability with peripherals that expose standard descriptors. Alternatively, restricting connections to an allowlist of bonded and trusted peers requires configuring bonding and reduces interoperability with unknown BLE devices, though it meaningfully narrows the attack surface since the vulnerability is triggerable only by a peer the device voluntarily connects to.

Affected VersionsENISA

Zephyr 2.6.0 <4.4.2

Affected Packages

euvd zephyr fix: 4.4.2

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

Zephyr RTOS (CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:*) is an embedded RTOS with a native Bluetooth Low Energy stack. The vulnerability resides in subsys/bluetooth/host/gatt.c within the function parse_read_std_char_desc(), which processes ATT Read By Type Responses during BT_GATT_DISCOVER_STD_CHAR_DESC operations. The per-entry stride rsp->len is sourced directly from the peer-controlled PDU and used both as the loop exit condition (length >= rsp->len) and the pointer advancement step (length -= rsp->len, pdu += rsp->len) without any minimum-value validation. CWE-835 (Loop with Unreachable Exit Condition) describes the root cause precisely: when a peer sends rsp->len = 0, the unsigned length counter never decrements, the exit condition is permanently satisfied, and the loop body continues re-parsing the same bytes indefinitely while repeatedly invoking the discovery callback. The sibling parsers parse_include() and parse_characteristic() already enforced a sizeof(struct bt_att_data) lower bound on rsp->len; this function was the sole omission. The fix, visible in commit 494283d, adds an identical guard before the loop entry.

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

Adjacent vector confirmed by Bluetooth requirement; PR:N because GATT discovery needs no authentication; A:H for complete BT thread hang; no C or I impact.

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:A/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
Adjacent
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

DescriptionCVE.org

The Bluetooth host GATT client function parse_read_std_char_desc() in subsys/bluetooth/host/gatt.c parses an ATT Read By Type Response received from a remote GATT server during BT_GATT_DISCOVER_STD_CHAR_DESC discovery. The per-entry stride rsp->len is taken directly from the peer's PDU, and the parse loop both tests its exit condition (length >= rsp->len) and advances (length -= rsp->len, pdu += rsp->len) using that value. The minimum value of rsp->len was never validated before the loop.

A malicious or malfunctioning peer can reply with rsp->len = 0. Because length is unsigned and never decreases, the loop condition stays true forever and the read pointer never advances; as long as the body is at least a few bytes with a non-zero handle and a matching descriptor UUID, the host repeatedly re-parses the same bytes and invokes the discovery callback, never terminating. This hangs the Bluetooth host processing thread (CWE-835, loop with unreachable exit condition).

The condition is reachable by any connected peer once the local device initiates standard-descriptor-value discovery; GATT discovery does not require bonding or encryption, so an unauthenticated adjacent attacker that the device connects to can trigger it. The impact is denial of service of the Bluetooth subsystem (and likely a watchdog reset on constrained targets); there is no memory disclosure or corruption.

The fix adds a rsp->len < sizeof(struct bt_att_data) check before the loop, rejecting under-length responses so the stride is always non-zero and the loop terminates. The sibling parsers parse_include() and parse_characteristic() already validated rsp->len and are unaffected.

Threat Intelligence Overview

EPSS Score
0.1%
Top 99% exploitable
Prevalence
Low
niche embedded RTOS targeting IoT and constrained microcontroller devices
Data Quality
6 sources
Confidence: High

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.1%
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
Controlled
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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