UBUNTU-CVE-2026-90091: High severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: fix race l2capsockcleanuplisten() vs. putchan For L2CAP sockets without owning sk->sksocket, reading l2cappi(sk)->chan may race against concurrent l2capsockkill() -> l2capsockputchan(). This excludes simultaneous protoops callbacks, but access in l2capsockcleanuplisten() has unsafe lockless read. [Task 1] [Task 2 (hdev->workqueue)] l2capsockrelease(parent) l2capdisconncfm l2capsockcleanuplisten l2capconndel btacceptdequeue l2capchandel locksock(sk) l2capsockteardowncb btacceptunlink btsk(sk)->parent = NULL releasesock(sk) ----------------> locksock(sk) parent = / NULL / locksock(sk) <--------------------- releasesock(sk) socksetflag(sk, SOCKZAPPED) l2capsockclosecb l2capsockkill(sk) l2capsockputchan chan = READ l2cappi(sk)->chan l2cappi(sk)->chan = NULL l2capchanholdunlesszero l2capputchan(chan) krefgetunlesszero(&chan->ref) Task 1 may observe NULL which causes null-ptr-deref. Fix the race by taking locksock() in l2capsockkill() to synchronize with l2capsockcleanuplisten(). holdunlesszero() is not needed here, l2cappi(sk)->chan owns reference if it is non-NULL. Clarify code comments vs. locking.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
ubuntu/linux-hwe-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42~24.04.1 - Upgrade
Upgrade
ubuntu/linux-riscv-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1~24.04.1 - Upgrade
Upgrade
ubuntu/linuxto a version that resolves this vulnerability.Fixed in 7.0.0-42.42 - Upgrade
Upgrade
ubuntu/linux-awsto a version that resolves this vulnerability.Fixed in 7.0.0-1016.17 - Upgrade
Upgrade
ubuntu/linux-gcpto a version that resolves this vulnerability.Fixed in 7.0.0-1016.18 - Upgrade
Upgrade
ubuntu/linux-ibmto a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oem-7.0to a version that resolves this vulnerability.Fixed in 7.0.0-1017.17 - Upgrade
Upgrade
ubuntu/linux-oracleto a version that resolves this vulnerability.Fixed in 7.0.0-1015.16 - Upgrade
Upgrade
ubuntu/linux-riscvto a version that resolves this vulnerability.Fixed in 7.0.0-42.42.1 - Configuration
Take lock_sock() in l2cap_sock_kill() to synchronize access with l2cap_sock_cleanup_listen() and prevent the race while reading l2cap_pi(sk)->chan.
Linux kernel Bluetooth L2CAP l2cap_sock_kill() locking = lock_sock()