CVE-2026-31408
kernel: Bluetooth: SCO: Fix use-after-free in sco_recv_frame() due to missing sock_hold
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · April 6, 2026
Updated · October 29, 2026
Description
A flaw was found in the Linux kernel's Bluetooth SCO (Synchronous Connection-Oriented) protocol implementation. The sco_recv_frame() function fails to properly hold a reference to a socket after releasing a lock. This oversight allows a concurrent operation to free the socket while it is still being accessed, leading to a use-after-free vulnerability. A local attacker could potentially exploit this to cause memory corruption or a denial of service.
Statement
Under sco_conn_lock, the code read conn->sk then dropped the lock without sco_sock_hold(), so close() could race and free the socket before sk->sk_state use. The fix mirrors other SCO helpers. Adjacent Bluetooth is involved; impact is UAF and likely crash.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CVSS 3.1 · 7CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE-911 · Improper Update of Reference Count