All vulnerabilities
CVE-2026-99013

Linux: Bluetooth: ISO: Reject concurrent BIS listener setup

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in559e4d2b6f83aaa96061659cc7104b7a0293f9efAlso 90b744066ca520d1a6a505a11ade9c9a5f48accf, 79993e9919a87068183ba3622c383f05c049c4bc and 2 moreCVE List
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 559e4d2b6f83aaa96061659cc7104b7a0293f9efLinuxCVE List
  • 90b744066ca520d1a6a505a11ade9c9a5f48accfLinuxCVE List
  • 79993e9919a87068183ba3622c383f05c049c4bcLinuxCVE List
  • 555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3LinuxCVE List
  • 6.12.113LinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

Text from CVE List

Affected versions 11

  • Linuxaffected: c541d7b5e17987ed330798b07d4ad508859c1c93 before 559e4d2b6f83aaa96061659cc7104b7a0293f9efCVE List
  • Linuxaffected: 168e28305b871d8ec604a8f51f35467b8d7ba05b before 90b744066ca520d1a6a505a11ade9c9a5f48accfCVE List
  • Linuxaffected: 168e28305b871d8ec604a8f51f35467b8d7ba05b before 79993e9919a87068183ba3622c383f05c049c4bcCVE List
  • Linuxaffected: 168e28305b871d8ec604a8f51f35467b8d7ba05b before 555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3CVE List
  • Linuxaffected: 6.12.6 before 6.12.113CVE List
  • Linuxaffected: 6.13CVE List
  • Linuxunaffected: all versions before 6.13CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.57 through 6.18.*CVE List
  • Linuxunaffected: 7.2.11 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 4