A use-after-free flaw in the Linux kernel's Bluetooth SCO implementation, tracked as CVE-2026-31408, was fixed after maintainers found that sco_recv_frame() could access a socket after it had been freed during a concurrent close(). The bug stems from reading conn->sk while holding sco_conn_lock() and then releasing the lock before safely retaining a socket reference, creating a race that can lead to memory corruption or a denial of service. Upstream records say the vulnerable code path existed since Linux 2.6.12, and the fix adds sco_sock_hold() before unlocking along with sock_put() on all exit paths.
The Linux kernel CVE team published fixes across multiple stable branches, including 6.6.131, 6.12.80, 6.18.21, 6.19.11, and 7.0-rc6, and advised users to move to the latest stable kernel rather than cherry-picking patches. Red Hat rated the issue Moderate for its products, assigned a CVSS v3 score of 7.0, and said updated kernel packages were released for multiple Red Hat Enterprise Linux lines, including RHEL 8, 9, and 10 and related support variants; upstream CVE scoring lists the flaw at 8.8 under adjacent-network Bluetooth attack conditions.

See real exploitation activity before you spend the cycle.
10 events from the most recent confirmed update back to the earliest known activity.
Red Hat listed Red Hat Enterprise Linux 10 kernel packages as fixed for CVE-2026-31408 via advisory RHSA-2026:19569.
Red Hat published a customer portal CVE entry describing CVE-2026-31408 as a moderate-severity use-after-free in the Linux kernel Bluetooth SCO implementation. The entry linked the issue to Bugzilla 2455334.
The vulnerability was fixed upstream by taking a socket reference with sco_sock_hold() before releasing the lock and adding sock_put() on exit paths. The fix was released in Linux 6.6.131, 6.12.80, 6.18.21, 6.19.11, and 7.0-rc6.
The Linux kernel CVE team assigned CVE-2026-31408 to the Bluetooth SCO use-after-free vulnerability in sco_recv_frame(). The issue was publicly announced through the linux-cve-announce channel.
Red Hat released fixes for Red Hat Enterprise Linux 8.8 Telecommunications Update Service and 8.8 Update Services for SAP Solutions via RHSA-2026:40760.
Red Hat listed Red Hat Enterprise Linux 10.0 Extended Update Support kernel packages as fixed for CVE-2026-31408 in RHSA-2026:39371.
Red Hat released fixes for RHEL 8.4 Advanced Mission Critical Update Support and Extended Update Support Long-Life Add-On, as well as RHEL 8.6 Advanced Mission Critical Update Support and Extended Update Support Long-Life Add-On, through RHSA-2026:35896 and RHSA-2026:35894.
Red Hat's CVE page for CVE-2026-31408 was last modified, reflecting updated product fix information and metadata for the issue.
Red Hat listed fixes for Red Hat Enterprise Linux 8 kernel and RHEL 8 kernel-rt packages in advisories RHSA-2026:21706 and RHSA-2026:21745.
The vulnerable logic in net/bluetooth/sco.c was introduced in Linux 2.6.12, creating a race in sco_recv_frame() where conn->sk could be freed after sco_conn_lock() was released but before later use.
Vulnerabilities, threat actors, malware, products, organizations, and breaches Mallory has linked to this story.
See real exploitation activity behind this advisory so you can triage it against everything else in the queue.
3 references tracked. Mallory keeps watching after this page renders.
bugzilla.redhat.com
Open sourceredhat.com
Open sourcelore.kernel.org
Open sourceMap indicators from this story to your assets and identify affected systems in minutes.
Every observed campaign, victim, and pivot linked to actors named in this story.
Malware, exploits, and IOCs connected to the activity described here.
YARA, Sigma, and Snort rules deployed to your SIEM as soon as they’re published.
Get matching new stories delivered to your team as they break — not the next morning.
Ask questions about this story and take action on the answers.