Bug 2517050 (CVE-2026-74535)

Summary: CVE-2026-74535 kernel: Bluetooth: ISO: avoid deadlocks in iso_sock_timeout
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the Linux kernel's Bluetooth ISO subsystem. This vulnerability arises from a race condition where the `iso_sock_timeout()` function can execute concurrently with `iso_conn_del()`, leading to a Use-After-Free (UAF) condition. A UAF vulnerability allows an attacker to potentially execute arbitrary code or cause a denial of service by manipulating freed memory. Additionally, a deadlock can occur if `iso_sock_timeout()` attempts to disable a timer while holding a lock, further contributing to a denial of service.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-08-15 12:47:10 UTC
In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: ISO: avoid deadlocks in iso_sock_timeout

iso_sock_timeout() takes lock_sock, so sync disabling the timer while
holding that lock may deadlock.

iso_sock_timeout() may also run concurrently with iso_conn_del(), which
leads to UAF

        [Task 1]                      [Task hdev->workqueue]
        iso_sock_timeout              iso_conn_del
          iso_conn_hold_unless_zero     iso_chan_del
                           `------------> iso_conn_put
                                      caller frees hcon
          iso_conn_put
            iso_conn_free
              conn->hcon->iso_data = NULL; /* UAF */

Fix the deadlock by removing the disable from the lock_sock sections.
Move the timer from iso_conn to iso_pinfo to decouple it from iso_conn
which may need to be freed in lock_sock section. Convert some of the
clear_timer to disable_timer.

Comment 1 Mauro Matteo Cascella 2026-08-19 17:43:26 UTC
Upstream advisory:
https://lore.kernel.org/linux-cve-announce/2026081547-CVE-2026-74535-7c9b@gregkh/T