CVE-2026-63946: Bluetooth: ISO: fix UAF in iso_recv_frame

Published Jul 19, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: ISO: fix UAF in isorecvframe

isorecvframe reads conn->sk under isoconnlock but releases the lock before using sk, with no reference held. A concurrent isosockkill() can free sk in that window, causing use-after-free on sk->skstate and sockqueuercvskb().

Fix by replacing the bare pointer read with isosockhold(conn), which calls sockhold() while the spinlock is held, atomically elevating the refcount before the lock drops. Add a dropput label so sockput() is called on all exit paths where the hold succeeded.

Affected Software

20 affected componentsFixes available
Linux Linux kernel
debian/linux<6.1.176-1
6.1.176-1
debian/linux<6.12.94-1
6.12.94-1
debian/linux<7.0.12-1
7.0.12-1
debian/linux
6.1.176-16.1.190-16.12.107-16.12.113-17.2.12-17.2.13-1
linux/kernel>=6.0.0<6.1.176
6.1.176
linux/kernel>=6.2.0<6.6.143
6.6.143
linux/kernel>=6.7.0<6.12.93
6.12.93
linux/kernel>=6.13.0<6.18.35
6.18.35
linux/kernel>=6.19.0<7.0.12
7.0.12
Linux Linux kernel>=6.0<6.1.176
Linux Linux kernel>=6.2<6.6.143
Linux Linux kernel>=6.7<6.12.93
Linux Linux kernel>=6.13<6.18.35
Linux Linux kernel>=6.19<7.0.12
Linux Linux kernel=7.1-rc1
Linux Linux kernel=7.1-rc2
Linux Linux kernel=7.1-rc3
Linux Linux kernel=7.1-rc4
Linux Linux kernel=7.1-rc5

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1
  2. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.12.94-1
  3. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 7.0.12-1
  4. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.13-1
  5. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.1.176
  6. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.6.143
  7. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.12.93
  8. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 6.18.35
  9. Upgrade

    Upgrade linux/Kernel to a version that resolves this vulnerability.

    Fixed in 7.0.12
  10. Compensating control

    In Linux Bluetooth ISO iso_recv_frame, replace the bare conn->sk pointer read with iso_sock_hold(conn) while iso_conn_lock is held, and add a drop_put exit label so sock_put() is called on every exit path where the hold succeeds.

Event History

Jul 19, 2026
CVE Published
via MITRE·02:55 PM
Data Sourced
via MITRE·02:55 PM
DescriptionSeverity
Data Sourced
via OSV·02:55 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·04:17 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·04:17 PM
RemedyAffected Software

Frequently Asked Questions

1

What conditions are needed to trigger this issue?

The race requires Bluetooth ISO frame reception to occur while a concurrent ISO socket teardown via iso_sock_kill() frees the associated socket. Exploitation does not require privileges or user interaction according to the supplied vector, and attack reachability is adjacent-network.

2

Which systems are exposed?

Affected systems are Linux kernel deployments using the Bluetooth ISO functionality. The provided data does not identify affected kernel versions, distributions, or whether Bluetooth ISO is enabled by default.

3

What is the impact if the race is triggered?

A socket pointer can be used after it has been freed when iso_recv_frame accesses the socket state or queues a received skb. The supplied severity vector rates confidentiality, integrity, and availability impact as high.

4

What does the fix change?

The fix obtains a socket reference with iso_sock_hold(conn) while iso_conn_lock is held, preventing the socket from being freed after the lock is released. It also ensures sock_put() releases that reference on every applicable exit path.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203