CVE Catalog

CVE-2026-89774

HighCVSS 8.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.19%

9th percentile - higher than 9% of all known CVEs

Summary

In the Linux kernel's Bluetooth SCO subsystem, sco_conn_ready() dereferences sk without holding conn->lock or a reference, leading to a use-after-free when the socket is closed concurrently. The fix holds an sk refcount and rechecks socket validity after lock_sock().

Risk Assessment

A local attacker can trigger a use-after-free in the kernel via concurrent Bluetooth SCO socket operations, potentially causing a system crash or kernel code execution.

Recommendation

Update the Linux kernel to a version containing the fix that holds an sk reference in sco_conn_ready() and increments refcount in sco_get_sock_listen(). Until then, restrict access to Bluetooth devices.

Related vulnerabilities

Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS