Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local unprivileged shell
-
DeliveryOpen broadcast ISO (BIS) socket
-
ExploitRace two concurrent listen() calls
-
ExecutionOverwrite conn pointer and leak connA reference
-
PersistTrigger use-after-free on HCI disconnect event
-
ImpactCorrupt kernel slab memory for privilege escalation
Vulnerability Assessment
| Exploitation Conditions | Requires local access as a user able to create Bluetooth ISO broadcast sockets (PR:L, AV:L); no user interaction. The concrete prerequisite is issuing two concurrent listen() calls on the same broadcast ISO socket so both observe BT_BOUND, racing the interval in iso_sock_listen() where the socket lock is dropped before iso_listen_bis() and before BT_LISTEN is published. Limiting factors: the kernel must be built with and the device must support Bluetooth ISO broadcast (BIS); the affected version range (fixed in commits landing in e.g. stable 6.12.113 and sibling branches) must be running; and the attacker must win a narrow timing window, so reliability is low. There is no network vector and no remote reachability. |
| Impact | Signals are consistent and point to a genuine but non-emergency local kernel flaw. The CVSS 3.1 base score of 7.8 (AV:L/AC:L/PR:L/UI:N) reflects high confidentiality, integrity and availability impact, but every signal tempering urgency agrees: EPSS is 0.21% (11th percentile), the CVE is NOT in CISA KEV, and no exploit or PoC reference is present - only upstream kernel fix commits. The vuln.today decision label is 'this_week' rather than act_now/emergency, which is proportionate to a local-only use-after-free. Note a tension worth flagging: the CVSS vector encodes AC:L, yet the description explicitly describes the trigger as a race between two concurrent listen() calls (caller A observes BT_BOUND and attaches connA, caller B attaches connB before A publishes BT_LISTEN), which is a timing-dependent condition more naturally scored AC:H - this is why my independent assessment lowers attack complexity confidence. The attacker must already be local and able to open Bluetooth ISO sockets (PR:L), so this is a local privilege-escalation / memory-corruption primitive, not a remotely reachable issue. Real priority: patch on a normal stable-update cadence; it is a legitimate kernel UAF but not under active exploitation and not trivially weaponizable. |
| Exploit ScenarioDerived | A local unprivileged user with access to the Bluetooth stack opens a broadcast ISO (BIS) socket and issues two concurrent listen() calls on it, racing the window where iso_sock_listen() drops the socket lock. Winning the race overwrites iso_pi(sk)->conn so the connA reference is leaked while connA->sk remains valid; a later HCI disconnect-complete event then dereferences the freed socket (the KASAN report shows slab-use-after-free in iso_sock_hold via iso_conn_del), yielding kernel memory corruption usable for privilege escalation or denial of service. No public exploit or PoC code is identified in the provided data - only the upstream fix commits. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 24, 2026
Concurrent listen() calls on the same Linux kernel Bluetooth ISO broadcast (BIS) socket can overwrite the socket's connection pointer, leaking the first connection and leaving a stale socket reference that is later dereferenced after free, producing a slab use-after-free in iso_sock_hold() when an HCI disconnect event is processed. The race requires a local authenticated user able to create Bluetooth ISO broadcast sockets (CVSS AV:L/PR:L) and a narrow timing window (AC:H) in iso_sock_listen()/iso_listen_bis(), and is fixed in stable branches including 6.12.113 plus sibling commits. EPSS is 0.21% (11th percentile), the flaw is not in CISA KEV, and no public exploit was identified at time of analysis; the overall signal is a genuine but non-emergency local kernel flaw.
RemediationAI
Vendor-released patch: apply the stable kernel updates that contain the fix, specifically 6.12.113 and the sibling branches recorded as 6.18.57 and 7.2.11, or cherry-pick the upstream stable commits 559e4d2b6f83aaa96061659cc7104b7a0293f9ef, 90b744066ca520d1a6a505a11ade9c9a5f48accf, 79993e9919a87068183ba3622c383f05c049c4bc and 555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3 (https://git.kernel.org/stable/c/559e4d2b6f83aaa96061659cc7104b7a0293f9ef, https://git.kernel.org/stable/c/90b744066ca520d1a6a505a11ade9c9a5f48accf, https://git.kernel.org/stable/c/79993e9919a87068183ba3622c383f05c049c4bc, https://git.kernel.org/stable/c/555ff78fa719f50ff4cdbdb40aa1acc6e8e327d3); the NVD advisory is at https://nvd.nist.gov/vuln/detail/CVE-2026-99013. The supplied sources do not document a configuration workaround, so updating to a fixed kernel is the complete remediation; the residual exposure applies to local users who can create Bluetooth ISO broadcast sockets on systems that keep the vulnerable release running.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw lives in the Linux kernel Bluetooth ISO socket layer used for LE Audio broadcast (BIS) reception. iso_sock_listen() deliberately releases the socket lock before calling iso_listen_bis() to preserve the hdev->lock ordering; because BT_LISTEN is only published after that call, two concurrent listen() requests on one broadcast socket can both pass the BT_BOUND check. __iso_chan_add() verifies that the incoming connection does not already have a socket but never verifies that the socket does not already have a connection, so the second attach overwrites iso_pi(sk)->conn, drops the reference held by connA, and leaves connA->sk pointing at a socket whose lifetime is now tied to connB. Teardown and subsequent HCI disconnect events then reach iso_conn_del()/iso_sock_hold() on a freed socket, which the reported KASAN trace records as a slab-use-after-free. The fix rechecks BT_BOUND and requires iso_pi(sk)->conn to be NULL after acquiring both the HCI device lock and the socket lock, rejecting a competing setup with -EBADFD through the existing unlock path before another connection is allocated. The CPE data maps the issue to cpe:2.3:a:linux:linux with no version constraints; no CWE identifier was supplied with the record, though the root cause is a check-time-of-use/locking gap leading to a reference-count leak and use-after-free.
Know when Bluetooth gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Local, low-priv Bluetooth socket access (AV:L/PR:L); the trigger is an explicit timing race between concurrent listen() calls, so AC:H; kernel UAF yields full C/I/A impact.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
4DescriptionCVE.org
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
Executive ViewAI
CVE-2026-99013 is a high-severity local privilege escalation vulnerability in the Linux kernel's Bluetooth ISO broadcast socket implementation. Successful exploitation allows an authenticated local user to gain kernel-level code execution, potentially compromising the entire host and any data or services it supports. While no public exploit exists and the attack requires precise timing, the availability of a patch and the kernel-level impact warrant prompt remediation for systems exposing Bluetooth functionality.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Unauthenticated Bluetooth Low Energy OTA firmware upgrade in the Meatmeet Pro WiFi & Bluetooth Meat Thermometer firmware
CVE-2025-32879 is a security vulnerability (CVSS 8.8) that allows an attacker. Risk factors: public PoC available.
Zephyr's Bluetooth Low Energy connection-response handler fails to verify that a connection request was actually initiat
Heap OOB write in Android Bluetooth driver via incorrect bounds check.
A use-after-free in the Android Bluetooth stack (bluetooth_ccc.cc, function BluetoothCccHandlerCallbackImpl) lets an att
Legacy pairing and secure-connections pairing authentication in Bluetooth BR/EDR Core Specification v5.2 and earlier may
Memory corruption in the Zephyr RTOS LE Audio Broadcast Sink (subsys/bluetooth/audio/bap_broadcast_sink.c) lets an attac
A memory leak combined with a use-after-free in the Linux kernel's Bluetooth HCI connection-setup path can crash the ker
A race condition in the Linux kernel's Bluetooth L2CAP subsystem allows a use-after-free of the hci_conn::l2cap_data poi
Bluetooth authentication bypass in SwitchBot Door Lock Series allows an attacker within BLE range to manipulate the lock
Out-of-bounds read in the Linux kernel Bluetooth subsystem's eir_get_service_data() leaks kernel heap memory into usersp
Use-after-free in the Linux kernel Bluetooth L2CAP stack lets a Bluetooth-adjacent attacker corrupt kernel memory by rac
EUVD-2026-108807
GHSA-jm2c-rxfm-r7c4
NVD
CVE.org
EPSS
Exploit-DB