Skip to main content

Zephyr RTOS CVE-2026-78117

| EUVDEUVD-2026-107484 MEDIUM
Race Condition (CWE-362)
2026-10-21 zephyr
4.2
CVSS 3.1 · Vendor: zephyr
View

Attack ChainAIDerived

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

  1. Access
    Connect as BLE peer in radio range
  2. Exploit
    Flood device with concurrent ACL traffic
  3. Execution
    Interleave two HCI senders to corrupt shared TX descriptor
  4. Impact
    Receive leaked adjacent RAM over the link

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

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 Infineon PSOC 6 BLESS HCI driver (hci_infineon_psoc6_bless.c) with CONFIG_BT_HCI_ACL_FLOW_CONTROL=y (the default on this driver's boards), plus an application that returns -EINPROGRESS from its L2CAP recv callback and later calls bt_l2cap_chan_recv_complete(), so the ACL buffer unref - and the resulting bt_hci_host_num_completed_packets() direct bt_send() - runs on a preemptible thread concurrent with other HCI transmissions. An attacker must be a connected BLE peer within adjacent radio range generating concurrent traffic to raise the collision rate. Limiting factors: the window is a narrow timing race (AC:H) that is not reliably controllable, the disclosed bytes are adjacent/recycled RAM and are not attacker-chosen, impact is limited to a single connected peer, and deployments using the default cooperative TX-processor work queue without the -EINPROGRESS/recv_complete pattern are far less exposed.

Impact

This is a genuine but low-priority defect. The input CVSS 3.1 vector (AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L, base 4.2 / Medium) is internally consistent with the description: exploitation is confined to Bluetooth adjacent range (AV:A), hinges on winning a hard-to-control concurrency race between two HCI senders (AC:H), needs no authentication beyond an established BLE connection (PR:N), and yields only low-impact information disclosure of non-attacker-chosen adjacent RAM (C:L) or transient link disruption (A:L) with no write/corruption primitive (I:N). No EPSS score, KEV listing, or POC was provided, so there is no public exploit identified at time of analysis and no evidence of active exploitation. All exploitation signals point the same direction - low real-world risk - with no conflict between CVSS, EPSS (absent), and KEV (absent). The combination of adjacent-only vector, high attack complexity (a race that depends on precise interleaving), narrow affected hardware, and a required non-default application behavior places this well below internet-facing or wormable issues despite its unauthenticated nature. Treat as a routine patch-when-convenient item for affected Infineon PSOC 6 BLESS deployments rather than an emergency.

Exploit ScenarioDerived

A malicious or compromised BLE peer within radio range connects to an affected Infineon PSOC 6 device and deliberately floods it with concurrent ACL traffic while the device performs its own transmissions, aiming to interleave two HCI senders so the shared file-scope descriptor pairs one buffer's dataLength with another's (or an already-freed) data pointer. If the race is won, the controller transmits bytes of adjacent or recycled RAM back to the peer; other interleavings instead duplicate or drop HCI packets and disrupt the link. No public exploit code exists, the race is hard to win (AC:H), and the leaked bytes are not attacker-chosen.

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 – Oct 21, 2026

A race condition in Zephyr RTOS's Infineon PSOC 6 BLESS Bluetooth HCI driver lets a connected BLE peer within radio range obtain small amounts of adjacent RAM (up to one HCI/ACL payload) or cause duplicate-dropped HCI packets, because the driver stores its outgoing TX descriptor in a file-scope static that is populated before the serialising semaphore is taken. Only builds using hci_infineon_psoc6_bless.c with CONFIG_BT_HCI_ACL_FLOW_CONTROL=y (the default on this driver's boards) and an application that returns -EINPROGRESS from its L2CAP recv callback and later calls bt_l2cap_chan_recv_complete() are realistically exposed, since that pattern moves the ACL buffer unref onto a preemptible thread that calls bt_send() directly, outside the cooperative TX work queue. Impact is bounded - the driver only reads through the descriptor, so there is no write primitive, no memory corruption, and the leaked bytes are not attacker-chosen; the assessed vector is CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:L (4.2). No public exploit identified at time of analysis; an upstream fix commit is published alongside a GitHub security advisory.

RemediationAI

Upstream fix available (commit); released patched version not independently confirmed - Zephyr published commit 7d0efa35134141bb1b1527f9078d2bc19e67168e, which deletes the file-scope hci_tx_pkt and makes the descriptor a zero-initialised local in psoc6_bless_send(); apply that commit (or the Zephyr release/branch that contains it, per advisory https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-7v9c-hmjh-hxqw) to the affected driver. Where patching must be deferred, the highest-value compensating control is to stop the ACL unref from running on a preemptible application thread: avoid the -EINPROGRESS/bt_l2cap_chan_recv_complete() receive pattern and complete L2CAP receives synchronously, which keeps bt_hci_host_num_completed_packets() off the concurrent path at the cost of reduced receive throughput and possible buffer backpressure. Disabling CONFIG_BT_HCI_ACL_FLOW_CONTROL removes the Host Number of Completed Packets bypass entirely, but forfeits host-side ACL flow control, so controllers with small buffers may drop packets or stall under load. Restricting the device to pairing with trusted, physically proximate peers lowers the chance of a peer generating the concurrent traffic needed to widen the race, though it does not eliminate the defect. Note that the dataLength-only interleaving also causes silent packet duplication/loss, so any of these mitigations should be paired with monitoring for unexplained link disruptions on PSOC 6 BLESS designs.

Affected VersionsENISA

Zephyr 3.4.0 ≤4.4.2

Affected Packages

euvd zephyr no fix

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 defect is a classic CWE-362 shared-state race: psoc6_bless_send() in drivers/bluetooth/hci/hci_infineon_psoc6_bless.c writes packetType, dataLength and data into a file-scope static cy_stc_ble_hci_tx_packet_info_t hci_tx_pkt before acquiring psoc6_bless_operation_sem, so the semaphore only serialises the call into Cy_BLE_SoftHciSendAppPkt() and not the descriptor that call dereferences. Zephyr's Bluetooth host assumes multiple concurrent senders are possible: most traffic funnels through the cooperative TX-processor work queue, but bt_hci_cmd_send() intentionally bypasses bt_dev.cmd_tx_queue for BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS and invokes bt_send() on the caller's thread. That caller is bt_hci_host_num_completed_packets(), wired as the acl_in_pool destroy callback, which executes on whichever thread releases the last reference to a received ACL buffer - with CONFIG_BT_HCI_ACL_FLOW_CONTROL=y and an application using the -EINPROGRESS / bt_l2cap_chan_recv_complete() pattern, that is a preemptible application thread. When the two senders interleave, the semaphore holder can present the controller with a dataLength from one net_buf and a data pointer from another, or a pointer to a buffer already returned to its pool, so the controller copies up to a full ACL payload out of a shorter or recycled region. Because the vulnerable path is read-only from the shared descriptor, the worst outcomes are bounded out-of-bounds reads (information disclosure to the connected peer) plus packet duplication/loss on the link; the fix simply moves the descriptor to a stack local in psoc6_bless_send(), which is safe because Cy_BLE_SoftHciSendAppPkt() copies the packet before returning.

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

Bluetooth adjacent range (AV:A), a hard-to-win concurrency race (AC:H), no auth beyond a BLE connection (PR:N); only low RAM disclosure (C:L) and link disruption (A:L), no write primitive (I:N).

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

Primary rating from Vendor (zephyr).

CVSS VectorVendor: zephyr

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

DescriptionCVE.org

The Infineon PSOC 6 BLESS HCI driver in drivers/bluetooth/hci/hci_infineon_psoc6_bless.c stored the outgoing HCI packet descriptor in a file-scope variable, static cy_stc_ble_hci_tx_packet_info_t hci_tx_pkt. psoc6_bless_send() cleared and populated that descriptor's packetType, dataLength and data fields before acquiring psoc6_bless_operation_sem, so the driver's serialising semaphore protected only the call into Cy_BLE_SoftHciSendAppPkt() and not the shared state that call reads.

The Bluetooth host does not guarantee a single HCI sender. Most transmissions are funnelled through the cooperative TX-processor work queue, but bt_hci_cmd_send() deliberately bypasses bt_dev.cmd_tx_queue for BT_HCI_OP_HOST_NUM_COMPLETED_PACKETS and calls bt_send() directly from the caller's thread; that caller is bt_hci_host_num_completed_packets(), the acl_in_pool destroy callback, which runs on whichever thread drops the last reference to a received ACL buffer. CONFIG_BT_HCI_ACL_FLOW_CONTROL defaults to y on this driver's boards, and an application that returns -EINPROGRESS from its L2CAP recv callback and later calls bt_l2cap_chan_recv_complete() performs that unref from its own preemptible thread. A remote peer that generates Bluetooth traffic concurrently with the device's own transmissions raises the collision rate.

When two senders interleave, the semaphore holder can hand the controller a descriptor whose dataLength comes from one net_buf and whose data pointer comes from another - or one whose buffer has already been returned to its pool. The controller then copies and transmits up to a full HCI/ACL payload starting at a shorter or recycled buffer, disclosing adjacent RAM contents to the connected peer; other interleavings duplicate one HCI packet and silently drop another, disrupting the link. The driver only reads through the shared descriptor, so no memory corruption or write primitive results, and the disclosed bytes are not attacker-chosen. The fix makes the descriptor a local variable in psoc6_bless_send(), removing the shared state; Cy_BLE_SoftHciSendAppPkt() copies the packet before returning, so it need not outlive the call.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
driver specific to Infineon PSOC 6 BLESS boards, narrow embedded footprint
Data Quality
5 sources
Confidence: Medium

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· derived
None
System Exposure· derived
Controlled
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

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

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

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