Bluetooth: mgmt: fix race in read_unconf_index_list()
- 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
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 6.6.158, 6.12.112, 6.18.55, 7.2.9
- 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: mgmt: fix race in read_unconf_index_list() read_unconf_index_list() counts unconfigured controllers before allocating its response, then checks the device flags again while filling it. hci_dev_list_lock stabilizes list membership, but it does not serialize the per-device flags. During asynchronous controller setup, the worker can set HCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller omitted from the allocation count can then become eligible for the fill pass, causing an out-of-bounds write to rp->index[]. Allocate space for every device on hci_dev_list. Since list membership cannot change while hci_dev_list_lock is held, the response remains large enough regardless of flag transitions. The reported count and response length still include only eligible unconfigured controllers.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
3.17
- KernelLinux
From 3.17.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/fa6f79bb0009406bb11e6912b53ab7c564d6f06b
- stable/c/76dc7e0297f6f7ebefc36a69251e3f4a676d9853
- stable/c/9c32455f490b960efccedd041c7aabb1a04c5cc4
- stable/c/524e0450dd9a396f99a81b045219b0e2ea0dab57
- stable/c/8ddf962c76432a10a6cb80042875cbc48a9c056b
- stable/c/416546cd6a54e9b68f2b91bc680b1ee17dcd77a1
- stable/c/2e8bba0360d1379bfa8da47c8f5dadbb10a3fba1
- stable/c/b5dbb41b212c50c095a4dbee3017a84fe94f033b