Skip to main content

Zephyr RTOS CVE-2026-10641

HIGH
Out-of-bounds Write (CWE-787)
2026-06-17 zephyr
7.1
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Recon
    Approach target within Bluetooth range
  2. Delivery
    Present rogue Audio Gateway to HF device
  3. Exploit
    Allow SLC setup and AT+CIND=? query
  4. Install
    Reply with oversized +CIND indicator list
  5. C2
    Trigger OOB write in cind_handle_values()
  6. Execute
    Corrupt adjacent struct fields
  7. Impact
    Crash Bluetooth host (DoS)

Vulnerability Assessment

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

2 techniques across 2 tactics: Execution, Privilege Escalation

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

Exploitation Conditions

Target must be a Zephyr build with CONFIG_BT_HFP_HF enabled and acting in the HFP Hands-Free role, performing Service Level Connection setup with the attacker's Audio Gateway over Bluetooth Classic (BR/EDR). The attacker must be within Bluetooth radio range and able to complete enough of the HFP SLC handshake to deliver an AT+CIND=? response containing more than 20 recognized indicator entries; no user interaction, no pairing prompt acceptance beyond what the device's normal HFP flow already permits, and no authentication on the HFP layer are required (PR:N, UI:N). Limiting factors: adjacent (not network) attack vector, requires Bluetooth Classic radio (not BLE), requires the device to connect to or accept connection from the attacker's AG, and is only present in builds compiling the HFP HF subsystem.

Impact

The CVSS 3.1 vector AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H (7.1 High) is consistent with the description: exploitation is adjacent (Bluetooth range), unauthenticated, requires no user interaction, and is primarily an availability (DoS of the Bluetooth host) and limited integrity issue, with no direct confidentiality impact because the write is of an attacker-positioned but small index value. EPSS and CISA KEV status are not provided in the input; no public exploit identified at time of analysis, so this should be treated as a credible DoS / memory-corruption risk rather than confirmed in-the-wild exploitation. Real-world risk is gated by deployment: only builds with CONFIG_BT_HFP_HF enabled and HFP HF role active are vulnerable, and the attacker must be within Bluetooth Classic range and able to complete an SLP-level connection as the AG, which limits mass exploitation but is highly relevant for headset, automotive, and wearable Zephyr devices. The vector says C:N but the description notes corruption of adjacent struct fields including pointers/bookkeeping - code execution potential is theoretical and not asserted by the CVSS, so escalation beyond DoS should be considered possible but unverified.

Exploit ScenarioDerived

An attacker within Bluetooth Classic range stands up a rogue or compromised Audio Gateway (e.g., spoofed car kit or headset peer) and waits for, or coerces, a Zephyr-based device with HFP HF enabled to initiate the standard Service Level Connection. When the HF sends AT+CIND=?, the malicious AG responds with a crafted +CIND: list containing many more than 20 recognized indicator entries, causing cind_handle_values() to write past ind_table[] into adjacent struct fields and crash or corrupt the Bluetooth host. No public exploit identified at time of analysis, but the trigger requires only a single malformed AT response and no user interaction.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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 17, 2026

Out-of-bounds write in Zephyr RTOS Bluetooth Classic Hands-Free Profile (HFP) parser allows an adjacent Bluetooth peer acting as an Audio Gateway to corrupt heap/static memory on devices with CONFIG_BT_HFP_HF enabled. A single malformed +CIND response sent during Service Level Connection setup can crash the Bluetooth host or corrupt adjacent connection state with no user interaction. No public exploit identified at time of analysis, and the upstream fix is available via commit cf7693a in the zephyrproject-rtos repository.

RemediationAI

Upstream fix available (commit cf7693a8261ae363c9cf46cfd51005486637173e on zephyrproject-rtos/zephyr) which adds an index >= ARRAY_SIZE(hf->ind_table) guard in cind_handle_values(); apply the patch by upgrading to a Zephyr release that includes this commit (post-v4.4.0) or by backporting it into your fork or LTS branch - released patched version not independently confirmed beyond the commit and GHSA-wx5j-q6f2-59p3 advisory. As compensating controls until patched, disable CONFIG_BT_HFP_HF in the build if HFP Hands-Free is not required (removes the vulnerable parser entirely but disables hands-free telephony), restrict Bluetooth pairing/connection to known bonded peers and avoid auto-connecting to unknown AGs (reduces remote AG attack surface at the cost of usability), and keep Bluetooth Classic discoverable/connectable mode off when not actively pairing. Refer to https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-wx5j-q6f2-59p3 for vendor guidance.

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

Zephyr is a widely deployed open-source RTOS used in embedded and IoT devices, and the affected component is its Bluetooth Classic host stack (subsys/bluetooth/host/classic/hfp_hf.c) implementing the Hands-Free role of HFP. The root cause is CWE-787 (out-of-bounds write): cind_handle_values() writes hf->ind_table[index] = i using an index derived from the count of +CIND: list entries received from the peer Audio Gateway, but never validates index against the fixed-size 20-element int8_t ind_table[] member of struct bt_hfp_hf. Because the AT command parser places no cap on the number of recognized indicators in the AG's response, an attacker controls how far past the array the write occurs, corrupting adjacent fields such as feature masks, SDP/version state, the calls[] array, and work/atomic bookkeeping, and potentially memory beyond the static connection pool. The sibling AG-side helper ag_indicator_handle_values() already performed this bounds check, and the patch (commit cf7693a) ports the same if (index >= ARRAY_SIZE(hf->ind_table)) guard into the HF parser.

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

Bluetooth-range adjacent vector (AV:A), no auth or user interaction on HFP SLC (PR:N/UI:N), attacker-positioned small write yields limited integrity (I:L) and reliable host DoS (A:H), no direct disclosure (C:N).

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H
4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/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
Low
Availability
High

DescriptionCVE.org

Zephyr's Bluetooth Classic Hands-Free Profile (HFP) Hands-Free role parser (subsys/bluetooth/host/classic/hfp_hf.c) contains an out-of-bounds write. During Service Level Connection setup the HF sends AT+CIND=? and parses the AG's +CIND: response in cind_handle(), which assigns a per-entry counter index and calls cind_handle_values() for each list element. cind_handle_values() then wrote hf-ind_table[index] = i without verifying that index is within the 20-element int8_t ind_table[] array of struct bt_hfp_hf. Because the parser places no cap on the number of +CIND: list entries, a remote Attendant Gateway (a malicious, compromised, or spoofed peer the device connects to over Bluetooth) can send a response with more than 20 recognized indicator entries and drive index arbitrarily large, writing a small attacker-positioned value past the array into adjacent struct fields (feature masks, SDP/version state, the calls[] array, work/atomic bookkeeping) and potentially beyond the static connection pool slot. This yields memory corruption and at least denial of service of the Bluetooth host, triggered by a single malformed AT response with no user interaction. The sibling consumer ag_indicator_handle_values() already performed the equivalent bounds check; this commit adds the same index = ARRAY_SIZE(hf-ind_table) guard to close the gap. Affects builds with CONFIG_BT_HFP_HF enabled; introduced with the original HFP HF CIND parser (~v1.7) and present through v4.4.0.

Executive ViewAI

Why It Matters

A memory corruption vulnerability in Zephyr RTOS's Bluetooth audio implementation could crash or corrupt connected devices when targeted by a nearby paired Bluetooth peer; no public exploit identified at time of analysis. Organizations using Zephyr in IoT or consumer devices with Hands-Free Profile enabled must rapidly identify and patch affected systems to prevent service disruption and data integrity risks.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Data Quality
6 sources
Confidence: High
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 HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
Poc
System Exposure· derived
Controlled
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Affected Products (CPE)CVE.org

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