Description
The Bluetooth host pre-allocates a bt_conn object (a "reservation") from the fixed acl_conns[] pool for every connectable advertising set it starts, in le_adv_start_add_conn() in subsys/bluetooth/host/adv.c. When an incoming peripheral connection completes, find_pending_connect() in subsys/bluetooth/host/hci_core.c looked that reservation up using only the identity and the peer address, with a directed-then-undirected fallback, and had no knowledge of which advertising set actually terminated. With CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1, where the LE Enhanced Connection Complete event is cached until the LE Advertising Set Terminated event identifies the set, this lookup can return the reservation belonging to a different, still-running advertising set.

The defect is reachable over the air by any adjacent device. If an application runs two connectable extended advertising sets on the same identity — one undirected and one directed at a peer P (the common "directed reconnect to a bonded central while still accepting new centrals" pattern) — a remote initiator whose address maps to P connecting on the undirected set causes the directed set's reservation to be consumed instead. The initiator address is chosen freely by the remote device and is not authenticated at link establishment, so no bonding, pairing or prior relationship is required to trigger the mis-attribution.

The undirected set's own reservation is then stranded: its BT_ADV_ENABLED flag has already been cleared, and le_adv_stop_free_conn() — the only path that returns a reservation to the pool — is reached only for sets that are still enabled, so bt_le_ext_adv_stop() returns early and the object is never released. Each occurrence permanently consumes one CONFIG_BT_MAX_CONN slot until bt_disable() or reboot. In application patterns that restart the directed advertising set after each disconnect, an attacker can repeat the sequence until the pool is exhausted, after which connectable advertising fails with -ENOMEM and the device can no longer accept connections. As a side effect the directed set keeps advertising without a reservation, so a genuine connection on it is dropped by bt_hci_disconnect(). The impact is availability only; no memory corruption or information disclosure results, and configurations with a single advertising set are unaffected.
Published: 2026-10-26
Score: 4.3 Medium
EPSS: n/a
KEV: No
Impact: Availability (Connection Exhaustion)
Action: Apply Mitigation
AI Analysis

Impact

An attacker can trigger a resource exhaustion condition in Zephyr's Bluetooth host by exploiting a reservation mis‑attribution bug. For every connectable advertising set that the firmware starts, it pre‑allocates a bt_conn object from a fixed acl_conns[] pool. When a peripheral connection completes, the host looks up the corresponding reservation using only the identity and peer address, without knowing which advertising set actually terminated. If the system runs multiple connectable extended advertising sets that share the same identity—such as an undirected set plus a directed set aimed at a known peer—the lookup may return the reservation belonging to the other set. The attacker’s address is chosen arbitrarily, so the flaw can be triggered without any prior pairing. The resulting mis‑assignment consumes the reservation for the directed set and leaves the undirected set stranded; its reservation never returns to the pool until the entire Bluetooth stack shuts down or the device reboots. Each repeated exploitation permanently consumes a CONFIG_BT_MAX_CONN slot, eventually causing all connectable advertising to fail with –ENOMEM and making the device unable to accept new connections. The bug affects availability only; no memory corruption or information disclosure occurs.

Affected Systems

All Zephyr OS builds that enable extended BLE advertising (CONFIG_BT_EXT_ADV) with more than one advertising set (CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1) are potentially impacted. The vulnerability is located in subsys/bluetooth/host/adv.c and subsys/bluetooth/host/hci_core.c. The issue only surfaces when an application starts multiple connectable extended advertising sets that share a single identity. Single‑set configurations remain unaffected. No specific product or version is listed as fixed, so the current known state applies to all affected firmware handling multiple advertising sets.

Risk and Exploitability

The CVSS score of 4.3 indicates a moderate risk. EPSS is not available, and the vulnerability is not listed in CISA's KEV catalog. The flaw is reachable over the air by any nearby device; the attacker does not need to be paired or authenticated. By repetitively initiating directed or undirected connections, a nearby unauthorized device can exhaust the host's connection pool, causing subsequent connectable advertising to fail. Because the flaw results only in resource exhaustion, the immediate business impact is a denial of service for Bluetooth connections, which could interrupt applications that rely on continuous peripheral connectivity.

Generated by OpenCVE AI on October 26, 2026 at 17:38 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Configure each advertising set to use a distinct identity or limit the system to a single advertising set.
  • Disable or reduce CONFIG_BT_EXT_ADV_MAX_ADV_SET to 1 to prevent simultaneous sets that share identities.
  • Implement application logic to monitor and clean up stranded reservations, or schedule a stack reset when the connection limit is reached.

Generated by OpenCVE AI on October 26, 2026 at 17:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 26 Oct 2026 19:00:00 +0000

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

Mon, 26 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Mon, 26 Oct 2026 16:30:00 +0000

Type Values Removed Values Added
Description The Bluetooth host pre-allocates a bt_conn object (a "reservation") from the fixed acl_conns[] pool for every connectable advertising set it starts, in le_adv_start_add_conn() in subsys/bluetooth/host/adv.c. When an incoming peripheral connection completes, find_pending_connect() in subsys/bluetooth/host/hci_core.c looked that reservation up using only the identity and the peer address, with a directed-then-undirected fallback, and had no knowledge of which advertising set actually terminated. With CONFIG_BT_EXT_ADV_MAX_ADV_SET > 1, where the LE Enhanced Connection Complete event is cached until the LE Advertising Set Terminated event identifies the set, this lookup can return the reservation belonging to a different, still-running advertising set. The defect is reachable over the air by any adjacent device. If an application runs two connectable extended advertising sets on the same identity — one undirected and one directed at a peer P (the common "directed reconnect to a bonded central while still accepting new centrals" pattern) — a remote initiator whose address maps to P connecting on the undirected set causes the directed set's reservation to be consumed instead. The initiator address is chosen freely by the remote device and is not authenticated at link establishment, so no bonding, pairing or prior relationship is required to trigger the mis-attribution. The undirected set's own reservation is then stranded: its BT_ADV_ENABLED flag has already been cleared, and le_adv_stop_free_conn() — the only path that returns a reservation to the pool — is reached only for sets that are still enabled, so bt_le_ext_adv_stop() returns early and the object is never released. Each occurrence permanently consumes one CONFIG_BT_MAX_CONN slot until bt_disable() or reboot. In application patterns that restart the directed advertising set after each disconnect, an attacker can repeat the sequence until the pool is exhausted, after which connectable advertising fails with -ENOMEM and the device can no longer accept connections. As a side effect the directed set keeps advertising without a reservation, so a genuine connection on it is dropped by bt_hci_disconnect(). The impact is availability only; no memory corruption or information disclosure results, and configurations with a single advertising set are unaffected.
Title Bluetooth Host connection reservation leak when multiple connectable advertising sets share an identity
Weaknesses CWE-772
References
Metrics cvssV3_1

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


Subscriptions

Zephyrproject Zephyr
cve-icon MITRE

Status: PUBLISHED

Assigner: zephyr

Published:

Updated: 2026-10-26T17:37:11.318Z

Reserved: 2026-08-26T15:37:53.314Z

Link: CVE-2026-81039

cve-icon Vulnrichment

Updated: 2026-10-26T17:35:44.806Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-26T17:17:30.487

Modified: 2026-10-26T18:34:17.050

Link: CVE-2026-81039

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-26T18:45:14Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime