CVE-2026-10680: Out-of-bounds access in Zephyr BR/EDR L2CAP configuration request handling via `uint16_t` length underflow

Published Jul 21, 2026
·
Updated

The Classic (BR/EDR) L2CAP signaling handlers l2capbrconfreq() and l2capbrconfrsp() in subsys/bluetooth/host/classic/l2capbr.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 CONFREQ 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 optlen = len - sizeof(req) underflows the uint16t to a near-0xFFFF value. The configuration-option loop, which lacks an optlen-versus-buf->len guard, then walks far past the end of the pooled ACL receive buffer using netbuf 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.

Affected Software

1 affected component
Zephyr Zephyr OS (Bluetooth host Classic L2CAP BR/EDR)=4.4.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Zephyr BR/EDR L2CAP configuration request handling (l2cap_br_conf_req/l2cap_br_conf_rsp) to a version that resolves this vulnerability.

    Fixed in 4.4.0
  2. Configuration

    In both l2cap_br_conf_req() and l2cap_br_conf_rsp(), update the bounds check so it compares the required minimum command size to len (not buf->len). This prevents the opt_len uint16_t underflow when the header length is smaller than the configuration-request structure.

    Zephyr subsys/bluetooth/host/classic/l2cap_br.c (l2cap_br_conf_req and l2cap_br_conf_rsp) minimum command size validation = Validate the minimum command size against len (per-command data length from the L2CAP signaling header) instead of buf->len (bytes remaining in the whole received PDU)
  3. Configuration

    Ensure the configuration-option loop includes a guard that prevents iteration/reads/writes beyond the option bytes available (i.e., an opt_len-versus-bounds check using the validated len for the per-command data). This mitigates out-of-bounds reads/writes via net_buf pull primitives.

    Zephyr subsys/bluetooth/host/classic/l2cap_br.c (configuration-option loop in l2cap_br_conf_req/l2cap_br_conf_rsp) opt_len vs buffer length guard = Add an opt_len-versus-len (or equivalent) guard to prevent walking past the end of the received option data

Event History

Jul 21, 2026
CVE Published
via MITRE·09:30 PM
Data Sourced
via MITRE·09:30 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:17 PM
DescriptionSeverityWeakness
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203