Bluetooth: fix memory leak in error path of hci_alloc_dev()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.15.210, 6.1.176, 6.6.143, 6.12.94, 5.11, and 1 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: fix memory leak in error path of hci_alloc_dev() Early failures in Bluetooth HCI UART configuration leak SRCU percpu memory. When device initialization fails before hci_register_dev() completes, the HCI_UNREGISTER flag is never set. As a result, when the device reference count reaches zero, bt_host_release() evaluates this flag as false and falls back to a direct kfree(hdev). Because hci_release_dev() is bypassed, the SRCU struct initialized early in hci_alloc_dev() is never cleaned up, resulting in a leak of percpu memory. Fix the leak by explicitly calling cleanup_srcu_struct() in the fallback (unregistered) branch of bt_host_release() before freeing the device.
Timeline
- CVE published
Affected versions
- Linux Linux
From 5.15.209 · fixed in 5.15.210; From 6.1.167 · fixed in 6.1.176; From 6.6.97 · fixed in 6.6.143; From 6.12.36 · fixed in 6.12.94; From 5.10.259 · fixed in 5.11; From 6.15.5 · fixed in 6.16
- Linux Linux
6.16
References 7
git.kernel.org
- stable/c/5b7dfca6f852e6b9d809fd0263b5427cc9fb33fd
- stable/c/c016118b9e51eeaf5bc93850d4c455a3b583c0aa
- stable/c/0622e527a31d4b44737fed5c1a2ac1fc2cfb5184
- stable/c/bc2efe73c194a74839d7cf57b63880d97e21d309
- stable/c/ce4b4cac3c5749b6aa75e62e2991ae2263f2f889
- stable/c/f82799407a50af7bcacacf09cc9b279af8fe9b81
- stable/c/37b3009bf5976e8ab77c8b9a9bc3bbd7ff49e37f