IT SBIT Services
Schneeberger
DEEN
CVE tracker

Linux kernel Bluetooth ISO: Race condition in concurrent BIS listener setup

CVE-2026-99013High 7.8

← All vulnerabilities

Summary

A race condition in the Linux kernel's Bluetooth ISO socket code lets two concurrent listen() calls on the same broadcast socket both pass the bound-state check. The second connection attachment overwrites a pointer and leaks a reference, which can later lead to a use-after-free. The attacker needs a local account; the CVSS base score is 7.8 (High) with high impact on confidentiality, integrity and availability.

Affected

  • Linux kernel: affected from 6.13 (OSV); CNA record also lists 6.12.6 to before 6.12.113
  • Commit-based ranges in the CNA record; upstream release mapping to be verified

Fixed in

  • 6.12.113 (per CNA record and OSV)
  • 6.18.57 (per CNA record and OSV)
  • 7.2.11 (per CNA record and OSV)
  • Fix commits: 555ff78fa719, 559e4d2b6f83, 79993e9919a8, 90b744066ca5

Workaround

Unknown. No workaround is documented in the sources. On systems that do not need Bluetooth, the Bluetooth stack or modules can be disabled until the kernel is updated.

Exploitation

  • Exploited in the wild: no evidence found
  • Public proof of concept: none found
  • EPSS: 0.00159 (low predicted exploitation probability)
  • Not confirmed in CISA KEV (catalog could not be queried directly)

Our recommendation

  • Install the distribution kernel update as soon as it is available, prioritising multi-user Linux systems and systems with Bluetooth
  • Until patched, disable Bluetooth on hosts that do not need it
  • Restrict local user accounts on multi-user systems
  • Verify the fixed version against your distribution advisory rather than relying on the NVD score alone

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 22:26.

Original description (NVD)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: ISO: Reject concurrent BIS listener setup iso_sock_listen() drops the socket lock before calling iso_listen_bis() to preserve the hdev->lock ordering. Two concurrent listen() calls on the same broadcast socket can therefore both observe BT_BOUND. Caller A can attach connA and release the locks, then caller B can acquire them and attach connB before A publishes BT_LISTEN. __iso_chan_add() checks whether connB already has a socket, but not whether the socket already has a connection. The second attachment overwrites iso_pi(sk)->conn, leaking the connA reference and leaving connA->sk intact. Socket teardown follows connB, so later events on connA can cause a stale socket access. Recheck BT_BOUND and require iso_pi(sk)->conn to be NULL after taking both the HCI device and socket locks in iso_listen_bis(). The connection check also covers the interval between attachment and publication of BT_LISTEN. Reject a competing setup with -EBADFD through the existing unlock path before allocating another connection. A recorded KASAN report from an instrumented kernel shows: BUG: KASAN: slab-use-after-free in iso_sock_hold+0x119/0x1f0 Call Trace: iso_sock_hold+0x119/0x1f0 iso_conn_del+0xe4/0x270 hci_disconn_complete_evt+0x351/0x8c0 hci_event_packet+0x71b/0xb20 hci_rx_work+0x293/0x730 Allocated by task 93: sk_prot_alloc+0x113/0x220 sk_alloc+0x2b/0x6d0 bt_sock_alloc+0x29/0x370 iso_sock_alloc.constprop.0+0x19/0x300 iso_sock_create+0x94/0x100 Freed by task 93: kfree+0x121/0x3c0 __sk_destruct+0x42b/0x540 iso_sock_release+0x29d/0x340 __sock_release+0xa1/0x260 sock_close+0x10/0x20

NVD references (4)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.