← Back to CVE List
CVE-2026-89774NVD
Vulnerability Summary
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.
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.
CVSS v3.1 Base Metrics — Score 8.8 (HIGH)
Attack VectorAdjacent
Attack ComplexityLow
Privileges RequiredNone
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < 50aae396dc30377bec8e3b181b8346f8fd38f7d8
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < 6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < d141d9b769bcd1b747898528c5023270cda040f2
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < 73cb063f5ec6ca51eb1e246c6d332563002ac277
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < 7199c78c3a3e399a4dc439d845826793880ccedc
- Linux Linux >= 27c24fda62b601d6f9ca5e992502578c4310876f and < 4e37f6452d586b95c346a9abdd2fb80b67794f39
- Linux Linux >= 5.15
- Linux Linux 50aae396dc30377bec8e3b181b8346f8fd38f7d8
- Linux Linux 6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1
- Linux Linux d141d9b769bcd1b747898528c5023270cda040f2
- Linux Linux 73cb063f5ec6ca51eb1e246c6d332563002ac277
- Linux Linux 7199c78c3a3e399a4dc439d845826793880ccedc
- Linux Linux 4e37f6452d586b95c346a9abdd2fb80b67794f39
External References
- https://git.kernel.org/stable/c/50aae396dc30377bec8e3b181b8346f8fd38f7d8
- https://git.kernel.org/stable/c/6e3840578aaad1a296aab1eaaa89ea3b7d5cbae1
- https://git.kernel.org/stable/c/d141d9b769bcd1b747898528c5023270cda040f2
- https://git.kernel.org/stable/c/73cb063f5ec6ca51eb1e246c6d332563002ac277
- https://git.kernel.org/stable/c/7199c78c3a3e399a4dc439d845826793880ccedc
- https://git.kernel.org/stable/c/4e37f6452d586b95c346a9abdd2fb80b67794f39