CVE-2026-63945: Bluetooth: ISO: serialize iso_sock_clear_timer with socket lock
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: ISO: serialize isosockcleartimer with socket lock
isosockclose() calls isosockcleartimer() before acquiring locksock(sk).
isosockcleartimer() reads isopi(sk)->conn twice without the socket lock held:
if (!isopi(sk)->conn) return; canceldelayedwork(&isopi(sk)->conn->timeoutwork);
Concurrently, isoconndel() executes under locksock(sk) and calls isochandel(), which sets isopi(sk)->conn to NULL and may result in the final reference to the connection being dropped:
CPU0 CPU1 ---- ---- isosockcleartimer() if (conn != NULL) ... locksock(sk) isochandel() isopi(sk)->conn = NULL canceldelayedwork(conn) / NULL deref or UAF /
isopi(sk)->conn is not stable across the unlock window, causing a NULL pointer dereference or use-after-free.
Serialize isosockcleartimer() with the socket lock by moving it inside locksock()/releasesock(), matching the pattern used in isoconndel() and all other call sites.