HIGH 8.0

CVE-2026-53357: Linux Kernel Bluetooth L2CAP Use-After-Free Vulnerability

A use-after-free vulnerability exists in the Linux kernel's Bluetooth L2CAP socket implementation. When a listening socket is closed while a Bluetooth device simultaneously disconnects, a child socket can be freed by the disconnect handler before the listening socket's cleanup routine finishes accessing it. This occurs because the cleanup code and the disconnect handler don't properly coordinate access to sockets that are in the process of being accepted. An attacker with local access and Bluetooth connectivity could exploit this to crash the kernel or potentially execute code with elevated privileges.

Source data · NVD / CISA · public domain

CVSS
3.1 · 8.0 HIGH · CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-416
Affected products
5 configuration(s)
Published / Modified
2026-07-02 / 2026-07-22

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: fix UAF in l2cap_sock_cleanup_listen() vs l2cap_conn_del() bt_accept_dequeue() unlinks a not-yet-accepted child from the parent accept queue and release_sock()s it before returning, so the returned sk has no caller reference and is unlocked. l2cap_sock_cleanup_listen() walks these children on listening-socket close. A concurrent HCI disconnect drives hci_rx_work -> l2cap_conn_del() which runs l2cap_chan_del() + l2cap_sock_kill() and frees the child sk and its l2cap_chan; cleanup_listen() then uses both: BUG: KASAN: slab-use-after-free in l2cap_sock_kill l2cap_sock_kill / l2cap_sock_cleanup_listen / __x64_sys_close Freed by: l2cap_conn_del -> l2cap_sock_close_cb -> l2cap_sock_kill This is distinct from the two fixes already in this area: commit e83f5e24da741 ("Bluetooth: serialize accept_q access") serialises the accept_q list/poll and takes temporary refs inside bt_accept_dequeue(), and CVE-2025-39860 serialises the userspace close()/accept() race by calling cleanup_listen() under lock_sock() in l2cap_sock_release(). Neither covers l2cap_conn_del() running from hci_rx_work, so this UAF still reproduces on current bluetooth/master. Take the reference at the source: bt_accept_dequeue() does sock_hold() while sk is still locked, before release_sock(); callers sock_put(). cleanup_listen() pins the chan with l2cap_chan_hold_unless_zero() under a brief child sk lock (serialising vs l2cap_sock_teardown_cb()), drops it before l2cap_chan_lock(), and skips a duplicate l2cap_sock_kill() on SOCK_DEAD. conn->lock is not taken here: cleanup_listen() runs under the parent sk lock and that would invert conn->lock -> chan->lock -> sk_lock (lockdep). KASAN/SMP: an unprivileged listen/close vs HCI-disconnect race produced 12 use-after-free reports per run before this change; 0, and no lockdep report, over 1600+ raced iterations after it on bluetooth/master.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53357 is a use-after-free (UAF) vulnerability in l2cap_sock_cleanup_listen() that races with l2cap_conn_del() in the Linux kernel Bluetooth subsystem. The vulnerability occurs when bt_accept_dequeue() returns a reference to a not-yet-accepted child socket without holding it, allowing concurrent HCI disconnect events to trigger l2cap_conn_del() → l2cap_chan_del() → l2cap_sock_kill(), which frees the child socket and its associated l2cap_chan structure. When cleanup_listen() subsequently accesses the freed socket during listening socket close, KASAN detects a slab-use-after-free condition. The fix adds a sock_hold() call in bt_accept_dequeue() before release_sock(), requiring callers to sock_put() and adds protective locking in cleanup_listen() using l2cap_chan_hold_unless_zero() to serialize access against l2cap_sock_teardown_cb().

Business impact

This vulnerability affects systems with Bluetooth capabilities where unprivileged local users can establish listening sockets. Exploitation could lead to kernel crashes (denial of service), system instability, or potential privilege escalation depending on the kernel's security posture. Organizations running Bluetooth-enabled Linux systems—including IoT devices, automotive systems, and desktop/laptop environments—face service disruption risk. The local-access requirement and need for Bluetooth connectivity limit exposure to direct remote attacks, but insider threats and compromised local processes present material risk.

Affected systems

The Linux kernel across multiple versions is affected, specifically the Bluetooth subsystem's L2CAP socket implementation. The vulnerability is present in the mainline kernel and affects any system running a vulnerable kernel version with Bluetooth support enabled. Verify the specific kernel versions addressed by consulting the Linux kernel security advisory and your distribution's patch status.

Exploitability

Exploitation requires local access to the system and the ability to create Bluetooth L2CAP listening sockets, typically available to unprivileged users. The race condition must be triggered by simultaneous socket operations and HCI disconnect events, making reliable exploitation non-trivial but reproducible under test conditions. According to the vulnerability description, the race was reproduced consistently (12 use-after-free instances per run) in controlled testing. This is not remotely exploitable and requires an attacker with local login capability or the ability to trigger Bluetooth connection state changes.

Remediation

Apply kernel patches that implement proper reference counting for child sockets in bt_accept_dequeue() and add serialization guards in l2cap_sock_cleanup_listen() using l2cap_chan_hold_unless_zero(). The fix ensures sockets are held while locked and released only after cleanup is complete, preventing the disconnect handler from freeing resources while cleanup_listen() is still accessing them. No configuration changes or workarounds are available; patching is the only remediation.

Patch guidance

Monitor your Linux distribution's security advisories for kernel updates addressing CVE-2026-53357. When patches become available, prioritize kernel updates for systems with Bluetooth enabled. Test patches in a non-production environment first to ensure compatibility with your specific Bluetooth hardware and configuration. Kernel updates typically require a reboot; plan maintenance windows accordingly. Verify patch application using your distribution's package verification tools and confirm the updated kernel includes the fixes described in the CVE resolution (sock_hold() in bt_accept_dequeue() and l2cap_chan_hold_unless_zero() in cleanup_listen()).

Detection guidance

System monitoring for kernel crashes and KASAN warnings (if running a kernel with AddressSanitizer enabled) may reveal exploitation attempts. Look for repeated kernel panics or oops messages referencing l2cap_sock_kill, l2cap_sock_cleanup_listen, or l2cap_conn_del in kernel logs. Bluetooth connection/disconnection events coinciding with application crashes involving listen sockets warrant investigation. Intrusion detection systems targeting local privilege escalation attempts may flag suspicious patterns of socket creation and Bluetooth device interaction, though this vulnerability's exploitation is unlikely to leave obvious audit trails without kernel-level monitoring.

Why prioritize this

This vulnerability merits high priority due to its HIGH CVSS score (8.0), local attack vector, and potential for both denial of service and privilege escalation. While it requires local access and Bluetooth interaction, many systems in modern deployments have these capabilities. The race condition reproducibility and kernel-level impact make it more serious than typical application crashes. Organizations should prioritize patching Linux systems with Bluetooth support, particularly those accessible to multiple local users or in multi-tenant environments.

Risk score, explained

The CVSS 3.1 score of 8.0 (HIGH) reflects a locally-exploitable vulnerability with no user interaction required, affecting the confidentiality, integrity, and availability of the system. The attack vector is local (AV:A—adjacent network, implying Bluetooth physical proximity or local system access) and privileges required are low (PR:L). The severity is driven by the potential for kernel crashes and the theoretical possibility of code execution through memory corruption, though controlled exploitation is non-trivial. The vulnerability does not require special network access or user interaction, justifying the elevated score.

Frequently asked questions

Does this affect my system if Bluetooth is disabled in BIOS?

No. This vulnerability requires Bluetooth to be enabled and functional. If you have disabled Bluetooth in your system BIOS or have Bluetooth hardware that is not present, you are not affected. However, verify that Bluetooth is truly disabled at the hardware level, not just in software, as some systems can be remotely re-enabled.

Can this be exploited remotely over the network?

No. This vulnerability requires local system access or physical Bluetooth proximity to trigger the race condition. It cannot be exploited via network services or remote code execution vectors. Exploitation requires the attacker to either have a login session on the system or the ability to connect a Bluetooth device to trigger disconnection events.

What is a use-after-free vulnerability and why is it serious?

A use-after-free (UAF) occurs when code accesses memory after it has been freed and returned to the system. In this case, l2cap_sock_cleanup_listen() attempts to access a socket that l2cap_conn_del() has already freed. UAF vulnerabilities are serious because they can lead to unpredictable behavior including kernel crashes, information disclosure, or arbitrary code execution, depending on what data is written to the freed memory region after deallocation.

Is there a workaround if I cannot patch immediately?

No practical workaround exists beyond disabling Bluetooth or restricting local user access. Disabling Bluetooth eliminates the attack surface for this specific vulnerability but may impact required functionality. Given the high severity and local-only requirement, patching should be prioritized rather than relying on workarounds.

This analysis is based on the CVE-2026-53357 description and CVSS 3.1 assessment as of the published date. Actual exploitability and impact may vary depending on kernel version, Bluetooth hardware, and system configuration. Organizations should verify patch availability through their Linux distribution's official security advisories before implementing changes. This vulnerability is not currently listed in CISA's Known Exploited Vulnerabilities (KEV) catalog; monitor that resource for updates if exploitation in the wild emerges. No proof-of-concept exploit code or detailed attack steps are provided in this analysis. For technical implementation details, consult the Linux kernel security mailing list and the vendor advisory. Source: NVD (public-domain), retrieved 2026-08-11. Analysis generated by SEC.co (claude-haiku-4-5).