Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCome within Bluetooth radio range
-
DeliveryInitiate L2CAP connection request to Zephyr device
-
ExploitChannel assigned CID in BT_L2CAP_CONNECTING state
-
InstallSend data PDU to CID before BT_L2CAP_CONNECTED reached
-
C2bt_l2cap_br_recv dispatches on stale/uninitialized channel fields
-
ExecuteUpper-layer handler processes attacker data or dereferences stale _sdu pointer
-
ImpactChannel or link teardown (denial of service)
Vulnerability Assessment
| Weakness |
CWE
|
| Exploitation Conditions | Target device must run Zephyr 1.6.0 through pre-4.4.2 compiled with Bluetooth Classic support (CONFIG_BT_BREDR=y) and must be discoverable or connectable by the attacker. Attacker must be within Bluetooth radio range and must send the crafted data PDU during the window between CID assignment in BT_L2CAP_CONNECTING state and the channel reaching BT_L2CAP_CONNECTED - this window is observable via on-air Bluetooth sniffing. For PSMs that enforce security, the vulnerability is exploitable before the security handshake, so the attacker does not need to be a previously paired device. The more severe dangling-pointer path additionally requires that the targeted channel object be a reused pool entry with a non-null stale _sdu pointer, which is not deterministically attacker-controllable and depends on prior channel allocation/deallocation history on the target device. |
| Impact | With CVSS 5.4 (AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L), the attack is bounded to Bluetooth radio range - typically 10 to 100 meters - which eliminates internet-scale mass exploitation but is operationally meaningful in dense shared environments such as hospitals, office buildings, and transit hubs where IoT devices running Zephyr may coexist with untrusted parties. The AC:L rating is appropriate since no preconditions beyond physical proximity are required; timing the PDU into the half-open CID window involves only observing the on-air connection setup sequence. The dangling _sdu pointer scenario represents a latent memory-safety concern that the C:N/I:L/A:L vector may understate in channel-reuse-heavy workloads, and this warrants patch urgency beyond what the numeric score alone conveys - even a mid-sized municipal IT team in inowroclaw managing Bluetooth-enabled IoT infrastructure should treat this as a scheduled patch rather than deferred maintenance. No EPSS score was supplied and the vulnerability is absent from CISA KEV with no known public exploit, consistent with the medium score and adjacency constraint. The SSVC technical impact is partial (bounded DoS plus data injection), exploitation is not confirmed as automated, and the scope is unchanged, making this a genuine medium-priority adjacency risk for Bluetooth Classic-enabled Zephyr deployments only - BLE-only builds are unaffected. |
| Exploit ScenarioDerived | An attacker within Bluetooth radio range initiates an L2CAP connection request to a Zephyr device; once the CID is assigned and the channel enters BT_L2CAP_CONNECTING, the attacker immediately transmits a data PDU addressed to that CID before the channel reaches BT_L2CAP_CONNECTED. If the targeted channel object was previously allocated and freed without clearing the _sdu pointer, bt_l2cap_br_ret_fc_recv() dereferences the stale pointer, causing the Bluetooth link manager to tear down the connection. No public proof-of-concept exploit has been identified. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 09, 2026
Bluetooth Classic L2CAP channel state confusion in Zephyr RTOS (versions 1.6.0 through pre-4.4.2) enables an adjacent unauthenticated peer to inject data PDUs into half-open L2CAP channels before configuration or security handshaking completes, forcing processing on stale or uninitialized channel fields. In the worst case, reused channel objects expose dangling _sdu reassembly buffer pointers, creating a memory-safety condition that causes channel and link teardown (denial of service) alongside unintended delivery of attacker-controlled data to upper-layer protocol handlers. No public exploit has been identified and the flaw is absent from CISA KEV; a vendor-released fix is available via Zephyr commit 2738ee9, targeting release 4.4.2.
RemediationAI
Upgrade to Zephyr 4.4.2 or later, which incorporates the fix from commit 2738ee921ba61ba2e644c95bceba302896dd8c19 adding an explicit BR_CHAN(chan)->state < BT_L2CAP_CONNECTED guard in bt_l2cap_br_recv() that drops any data PDU received before the channel reaches BT_L2CAP_CONNECTED. The authoritative vendor advisory is at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-hx89-rm6c-hjrh. For systems that cannot be immediately upgraded, disabling Bluetooth Classic at build time (CONFIG_BT_BREDR=n) fully eliminates the attack surface but removes all BR/EDR profiles (HFP, A2DP, RFCOMM). Restricting the physical RF environment to paired, allowlisted peers reduces exposure but does not eliminate the vulnerability because the state-confusion window occurs before security handshaking on PSMs that require it. There is no known runtime toggle that can selectively block the vulnerable code path without disabling the entire BR/EDR subsystem.
Affected VersionsENISA
Affected Packages
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 implements Bluetooth Classic (BR/EDR) L2CAP channel management in subsys/bluetooth/host/classic/l2cap_br.c. The root cause is CWE-666 (Operation on Resource in Wrong Phase of Lifetime): the receive dispatch function bt_l2cap_br_recv() uses bt_l2cap_br_lookup_rx_cid() to locate the target channel by CID without verifying that the channel has advanced to BT_L2CAP_CONNECTED state. Channels are added to the lookup table as soon as a RX CID is assigned-during BT_L2CAP_CONNECTING-making them reachable before l2cap_br_conf() initializes rx.mode and rx.mps, and before l2cap_br_conn_req() completes any required security pairing. Compounding this, Zephyr's pooled channel allocator does not zero rx.mode or the _sdu reassembly pointer in bt_l2cap_br_chan_del(), so reused objects carry stale fields from prior connections into the new CONNECTING window. A frame received during this window is routed into bt_l2cap_br_ret_fc_recv() with stale parameters and a potentially dangling _sdu pointer. Affected CPE: cpe:2.3:a:zephyrproject:zephyr:*:*:*:*:*:*:*:* covering versions 1.6.0 through pre-4.4.2 per EUVD-2026-75212.
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
AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Adjacent-only Bluetooth vector; no authentication or privileges required; bounded integrity impact from injected data and availability from link teardown; no confidentiality exposure.
Primary rating from Vendor (zephyr).
CVSS VectorVendor: zephyr
DescriptionCVE.org
The Bluetooth Classic (BR/EDR) L2CAP receive handler bt_l2cap_br_recv() in subsys/bluetooth/host/classic/l2cap_br.c dispatched inbound data PDUs based only on the destination channel ID, without checking that the target channel had reached the BT_L2CAP_CONNECTED state. A dynamic channel is assigned its RX CID and added to the connection's channel list while still in BT_L2CAP_CONNECTING (and later BT_L2CAP_CONFIG) - before configuration completes and, for PSMs that require security, before the peer is authenticated (l2cap_br_conn_req()).
Because the channel is already findable by bt_l2cap_br_lookup_rx_cid() during this window, a remote peer within radio range can send a data PDU addressed to that CID and have it processed on a not-yet-established channel. The dispatch keys off channel fields (BR_CHAN(chan)->rx.mode, rx.mps) that are only initialized during configuration by l2cap_br_conf(); since channel objects are pooled and bt_l2cap_br_chan_del() does not reset rx.mode or the reassembly buffer _sdu, a reused channel can carry stale state into the CONNECTING window and route the frame into the retransmission/flow-control path (bt_l2cap_br_ret_fc_recv()) with stale parameters and a possibly stale _sdu pointer.
The impact is delivery of attacker data to upper-layer protocol handlers on a half-open (and possibly unauthenticated) channel, plus operation on stale or partially initialized channel state on reused channel objects - leading to channel/link teardown (denial of service) and, in the stale-_sdu case, a dangling-pointer condition. The fix adds an explicit BR_CHAN(chan)->state < BT_L2CAP_CONNECTED guard that drops any data received before the channel is fully connected.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
EUVD-2026-75212
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB