Live › vulnerability › CVE-2026-99013
Go to dashboardTwo simultaneous listen() calls on the same Bluetooth ISO broadcast socket can attach two connections, leaving one connection pointing at a socket that is later freed. The sources show a KASAN slab-use-after-free in the Bluetooth ISO connection teardown path, which can crash the kernel or corrupt memory.
Summary written from the sources below. Check the originals before acting.
First seen by InfraStack 2026-10-23 21:57 UTC. All times on this page are UTC.
Systems running a Linux kernel with Bluetooth ISO (LE Audio broadcast) support that use broadcast sockets, where a local process can call listen() concurrently. Hosts without Bluetooth hardware or with the Bluetooth stack disabled are unlikely to be exposed. The sources do not say which distributions or kernel versions are affected.
No product ranges from the sources yet.
uname -r and compare against the kernel version that carries the upstream fix, which the sources do not namelsmod | grep -i bluetooth to see whether the Bluetooth stack with ISO support is loaded on the hostEach row is the first time that source carried this signal. The analyst’s rows are its own findings.
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
This page as .md · .json · in your agent: get_signal("CVE-2026-99013")
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.