GHSA-g3p6-8r9x-w9g7HighCVSS 8.8
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: SCO: hold sk...
🔗 CVE IDs covered (1)
📋 Description
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: SCO: hold sk properly in sco_conn_ready
sk deref in sco_conn_ready must be done either under conn->lock, or holding a refcount, to avoid concurrent close. conn->sk and parent sk is currently accessed without either, and without checking parent->sk_state:
[Task 1] [Task 2]
sco_sock_release
sco_conn_ready
sk = conn->sk
lock_sock(sk)
conn->sk = NULL
lock_sock(sk)
release_sock(sk)
sco_sock_kill(sk)
UAF on sk deref
and similarly for access to sco_get_sock_listen() return value.
Fix possible UAF by holding sk refcount in sco_conn_ready() and making sco_get_sock_listen() increase refcount. Also recheck after lock_sock that the socket is still valid. Adjust conn->sk locking so it's protected also by lock_sock() of the associated socket if any.
🔗 References (8)
- https://nvd.nist.gov/vuln/detail/CVE-2026-89774
- https://git.kernel.org/stable/c/4e37f6452d586b95c346a9abdd2fb80b67794f39
- https://git.kernel.org/stable/c/50aae396dc30377bec8e3b181b8346f8fd38f7d8
- https://git.kernel.org/stable/c/6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1
- https://git.kernel.org/stable/c/7199c78c3a3e399a4dc439d845826793880ccedc
- https://git.kernel.org/stable/c/73cb063f5ec6ca51eb1e246c6d332563002ac277
- https://git.kernel.org/stable/c/d141d9b769bcd1b747898528c5023270cda040f2
- https://github.com/advisories/GHSA-g3p6-8r9x-w9g7