← Back to search

CVE-2026-98290

7.5 HIGH

Published 2026-10-06 · Updated 2026-10-07

AI risk analysis

Summary
This vulnerability occurs when Bluetooth RFCOMM listener cleanup closes unaccepted child sockets in the wrong order, potentially causing a deadlock between socket locks and the RFCOMM mutex. This can lead to system instability or denial of service when handling Bluetooth connections.
Exploitability
Exploitation is moderately difficult as it requires precise timing and specific Bluetooth connection patterns to trigger the lock inversion scenario, but does not require user interaction or elevated privileges.
Blast radius
The impact could affect any Linux system running Bluetooth services with active RFCOMM listeners, potentially causing denial of service for Bluetooth connectivity and related services until system restart.
Detection
No reliable host or network indicator is derivable from the published description.
Prioritized remediation
Upgrade to Linux kernel version 6.10 or later which contains the fix for this RFCOMM lock inversion issue.
bluetoothkerneldenial-of-servicelock-inversion

Analysis generated locally by garnet-coder (no data left the box). AI-assisted — verify against primary sources before acting.

NVD description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: RFCOMM: avoid socket lock inversion in listener cleanup rfcomm_sock_cleanup_listen() closes unaccepted child sockets through rfcomm_sock_close(), which takes the child socket lock before rfcomm_dlc_close() acquires rfcomm_mutex. The RFCOMM worker takes these locks in reverse order while handling connections and DLC state changes, so lockdep reports a possible deadlock. Close dequeued children without taking their socket lock. The accept queue owns a reference to each child, and bt_accept_dequeue() locks the child while unlinking it and clearing its parent pointer. Dropping the child lock makes it important to prevent a concurrent rfcomm_connect_ind() from enqueueing a new child after cleanup observes an empty queue. Set a listening socket to BT_CLOSED while its lock is still held, before dropping the lock and draining the queue. The state check in rfcomm_connect_ind() then rejects new children once cleanup starts.

CVSS vector

CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

All references

Source data: NVD (nvd.nist.gov), public domain. Exploit-DB.ai adds local AI analysis for defensive use only.

Related CVEs

Related by shared AI tags and CWE weakness class. Browse the full archive.