Description
The Classic (BR/EDR) L2CAP signaling handlers l2cap_br_conf_req() and l2cap_br_conf_rsp() in subsys/bluetooth/host/classic/l2cap_br.c validated the minimum command size against buf->len (the bytes remaining in the whole received PDU) instead of len (the per-command data length from the L2CAP signaling header). Because multiple signaling commands can be packed into one PDU, buf->len may exceed a command's len. An attacker can send a CONF_REQ command with a header length smaller than the configuration-request structure (e.g. 0), followed by another command so that buf->len still satisfies the check. The check then passes incorrectly and opt_len = len - sizeof(*req) underflows the uint16_t to a near-0xFFFF value. The configuration-option loop, which lacks an opt_len-versus-buf->len guard, then walks far past the end of the pooled ACL receive buffer using net_buf pull primitives that perform no runtime bounds check, producing an out-of-bounds read of host memory and, when the out-of-bounds option bytes encode an MTU or flush-timeout option, an out-of-bounds write. The BR/EDR signaling channel is processed before pairing/encryption and an L2CAP channel to an L0 service such as SDP can be opened without pairing, so an unauthenticated peer within radio range that can establish an ACL connection can trigger the flaw, leading to memory corruption and denial of service (host/device crash). The defect is present in released versions including v4.4.0. The fix validates against len instead of buf->len in both handlers.
Published: 2026-07-21
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The classic Bluetooth BR/EDR L2CAP signaling handlers validate the minimum command size against the total remaining bytes in the received packet instead of the per‑command length declared in the signaling header. An attacker can send a CONF_REQ packet with an undersized header followed by another command so that the length check passes wrongly, causing an unsigned 16‑bit underflow that yields an opt_len close to 0xFFFF. The subsequent option parsing loop has no bounds check and reads far beyond the ACL receive buffer, producing an out‑of‑bounds read of host memory and, when the leaked option bytes encode an MTU or flush‑timeout option, an out‑of‑bounds write. This corrupted memory can lead to a Zephyr host crash, i.e., denial of service. The flaw is a classic out‑of‑bounds memory corruption (CWE‑125).

Affected Systems

Zephyr Project’s Zephyr RTOS is affected, including all released versions up to at least v4.4.0 and any later releases that do not incorporate the recent commit that fixes the length validation. The defect is present in code under subsys/bluetooth/host/classic/l2cap_br.c and affects any device running the classic BR/EDR stack. Devices that enable legacy BR/EDR L2CAP signaling are susceptible; those that have disabled or upgraded to the fixed code are not.

Risk and Exploitability

The CVSS base score of 7.6 represents a high impact, but the EPSS of less than 1% indicates that, as of this analysis, exploitation is unlikely. The flaw is not listed in CISA’s KEV catalog. Based on the description, it is inferred that an unauthenticated Bluetooth device within radio range can establish an ACL connection before pairing or encryption and send the malicious L2CAP packet, enabling remote exploitation with no user interaction. Consequently, the risk to systems that enable legacy BR/EDR L2CAP is significant for adversaries with proximity access, though overall threat remains low due to the limited attack surface and low exploitation probability.

Generated by OpenCVE AI on August 1, 2026 at 06:45 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Zephyr RTOS to the patched release that validates L2CAP command length against the per‑command value instead of the total buffer length.
  • If a firmware upgrade is not immediately possible, configure the device to disable or block legacy BR/EDR L2CAP signaling, preventing unauthenticated peers from initiating the flaw‑triggering ACL connection.
  • Filter Bluetooth traffic to restrict or drop unexpected L2CAP configuration requests, using a firewall or device‑side ACL rules to mitigate exploitation while awaiting a patch.

Generated by OpenCVE AI on August 1, 2026 at 06:45 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 22 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 22 Jul 2026 20:00:00 +0000

Type Values Removed Values Added
First Time appeared Zephyrproject
Zephyrproject zephyr
Vendors & Products Zephyrproject
Zephyrproject zephyr

Tue, 21 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
Description The Classic (BR/EDR) L2CAP signaling handlers l2cap_br_conf_req() and l2cap_br_conf_rsp() in subsys/bluetooth/host/classic/l2cap_br.c validated the minimum command size against buf->len (the bytes remaining in the whole received PDU) instead of len (the per-command data length from the L2CAP signaling header). Because multiple signaling commands can be packed into one PDU, buf->len may exceed a command's len. An attacker can send a CONF_REQ command with a header length smaller than the configuration-request structure (e.g. 0), followed by another command so that buf->len still satisfies the check. The check then passes incorrectly and opt_len = len - sizeof(*req) underflows the uint16_t to a near-0xFFFF value. The configuration-option loop, which lacks an opt_len-versus-buf->len guard, then walks far past the end of the pooled ACL receive buffer using net_buf pull primitives that perform no runtime bounds check, producing an out-of-bounds read of host memory and, when the out-of-bounds option bytes encode an MTU or flush-timeout option, an out-of-bounds write. The BR/EDR signaling channel is processed before pairing/encryption and an L2CAP channel to an L0 service such as SDP can be opened without pairing, so an unauthenticated peer within radio range that can establish an ACL connection can trigger the flaw, leading to memory corruption and denial of service (host/device crash). The defect is present in released versions including v4.4.0. The fix validates against len instead of buf->len in both handlers.
Title Out-of-bounds access in Zephyr BR/EDR L2CAP configuration request handling via `uint16_t` length underflow
Weaknesses CWE-125
References
Metrics cvssV3_1

{'score': 7.6, 'vector': 'CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H'}


Subscriptions

Zephyrproject Zephyr
cve-icon MITRE

Status: PUBLISHED

Assigner: zephyr

Published:

Updated: 2026-07-22T19:36:33.625Z

Reserved: 2026-06-02T15:26:10.782Z

Link: CVE-2026-10680

cve-icon Vulnrichment

Updated: 2026-07-22T19:32:26.530Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-21T22:17:00.303

Modified: 2026-07-30T15:54:25.400

Link: CVE-2026-10680

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T07:00:04Z

Weaknesses