{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-74533","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-15T05:44:03.912Z","datePublished":"2026-08-15T12:27:47.219Z","dateUpdated":"2026-08-17T05:48:22.228Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-17T05:48:22.228Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: ISO: fix race of kfree vs kref_get_unless_zero\n\nhci_conn::iso_data is accessed and modified without lock or RCU.\nThis leads to a race\n\n    [Task hdev->workqueue]                 \t[Task 2]\n    iso_recv                                    iso_conn_put(conn)\n      conn = LOAD hcon->iso_data                  iso_conn_free(conn)\n      iso_conn_hold_unless_zero(conn)               hcon->iso_data = NULL\n                                                    kfree(conn)\n        kref_get_unless_zero(&conn->ref) /* UAF */\n\nand also to races in iso_conn_add() vs. iso_conn_free().\n\nFix by adding spinlock hci_conn::proto_lock and using it to guard\nhci_conn::iso_data."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - The bug is in Bluetooth ISO receive handling (iso_recv in net/bluetooth/iso.c), reached when HCI processes ISO data packets from an adjacent BLE CIS/BIS/LE Audio peer via hci_recv_frame and hdev->workqueue; per kernel guidance Bluetooth radio reachability is Adjacent.\nAC:L - The race is between iso_recv loading hcon->iso_data and iso_conn_free kfree-ing the same iso_conn; an attacker controls both sides by concurrently sending ISO HCI data while disconnecting or closing the ISO socket, without relying on uncontrollable memory layout.\nPR:N - BTPROTO_ISO sockets require no CAP_NET_ADMIN or CAP_NET_RAW; an unprivileged local process can open and tear down ISO connections, and an adjacent Bluetooth peer can drive iso_recv and hci disconnect events without any credentials on the victim host.\nUI:N - No victim interaction is needed during exploitation of an active ISO session; a remote peer can race incoming ISO packets against link teardown, and a local attacker can close its own ISO socket while receiving data without opening files or mounts.\nS:U - The UAF corrupts kernel heap memory in the Bluetooth ISO subsystem on the host, enabling standard local privilege escalation within the kernel boundary rather than crossing VM, container, or IOMMU isolation.\nC:H - iso_conn_hold_unless_zero calls kref_get_unless_zero on a freed iso_conn slab object after iso_conn_free kfree, and iso_recv then dereferences conn fields, a classic use-after-free enabling arbitrary kernel memory disclosure.\nI:H - The UAF on iso_conn (kref, spinlock, sk_buff and socket pointers) permits heap spraying and corruption of conn->rx_skb/rx_len, providing primitives chainable to arbitrary kernel writes and control-flow hijacking.\nA:H - The use-after-free in iso_conn_hold_unless_zero during concurrent iso_recv and iso_conn_put reliably causes kernel oops or panic on freed slab memory, meeting High availability impact per kernel CVSS guidance for UAF crashes."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/hci_core.h","net/bluetooth/hci_conn.c","net/bluetooth/iso.c"],"versions":[{"version":"dc26097bdb864a0d5955b9a25e43376ffc1af99b","lessThan":"876a3e94c70d0859d1dad1c986112d4f0d99eba8","status":"affected","versionType":"git"},{"version":"dc26097bdb864a0d5955b9a25e43376ffc1af99b","lessThan":"af24e338bf5dafb80f42baa9a0b9e9b57b1c5d9c","status":"affected","versionType":"git"},{"version":"f53e7489273dc2bb307bf50f319b3762d45534f0","status":"affected","versionType":"git"},{"version":"a58d0f5dac322e16cc75334d000666512341bde5","status":"affected","versionType":"git"},{"version":"6.11.11","lessThan":"6.12","status":"affected","versionType":"semver"},{"version":"6.12.2","lessThan":"6.13","status":"affected","versionType":"semver"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/net/bluetooth/hci_core.h","net/bluetooth/hci_conn.c","net/bluetooth/iso.c"],"versions":[{"version":"6.13","status":"affected"},{"version":"0","lessThan":"6.13","status":"unaffected","versionType":"semver"},{"version":"7.1.8","lessThanOrEqual":"7.1.*","status":"unaffected","versionType":"semver"},{"version":"7.2","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"7.1.8"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.13","versionEndExcluding":"7.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.11.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.2"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/876a3e94c70d0859d1dad1c986112d4f0d99eba8"},{"url":"https://git.kernel.org/stable/c/af24e338bf5dafb80f42baa9a0b9e9b57b1c5d9c"}],"title":"Bluetooth: ISO: fix race of kfree vs kref_get_unless_zero","x_generator":{"engine":"bippy-1.2.0"}}}}