In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: cancel pendingrxwork before taking conn->lock
l2capconndel() takes conn->lock and then calls cancelworksync() for pendingrxwork. processpendingrx() takes the same mutex, so teardown can deadlock against the worker it is flushing.
This issue was found by our static analysis tool and then manually reviewed against the current tree.
The grounded PoC kept the l2capconnready() -> queuework(..., &conn->pendingrxwork) submit path, the l2capconndel() -> cancelworksync(&conn->pendingrxwork) teardown path, and the processpendingrx() -> mutexlock(&conn->lock) worker edge. Lockdep
WARNING: possible circular locking dependency detected processpendingrx+0x21/0x2a [vulnmsv] l2capconndel.constprop.0+0x3f/0x4e [vulnmsv] *** DEADLOCK ***
Cancel pendingrxwork before taking conn->lock, matching the existing lock-before-drain ordering used for the two delayed works in the same teardown path. The pending_rx queue is still purged after the work has been cancelled and conn->lock has been acquired.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64206.json",
"cna_assigner": "Linux"
}