{"id":"CVE-2026-98456","summary":"Bluetooth: mgmt: fix race in read_unconf_index_list()","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: mgmt: fix race in read_unconf_index_list()\n\nread_unconf_index_list() counts unconfigured controllers before allocating\nits response, then checks the device flags again while filling it.\n\nhci_dev_list_lock stabilizes list membership, but it does not serialize the\nper-device flags. During asynchronous controller setup, the worker can set\nHCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller\nomitted from the allocation count can then become eligible for the fill\npass, causing an out-of-bounds write to rp-\u003eindex[].\n\nAllocate space for every device on hci_dev_list. Since list membership\ncannot change while hci_dev_list_lock is held, the response remains large\nenough regardless of flag transitions. The reported count and response\nlength still include only eligible unconfigured controllers.","modified":"2026-10-20T02:30:31.349252209Z","published":"2026-10-18T15:15:05.909Z","database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98456.json"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/2e8bba0360d1379bfa8da47c8f5dadbb10a3fba1"},{"type":"WEB","url":"https://git.kernel.org/stable/c/416546cd6a54e9b68f2b91bc680b1ee17dcd77a1"},{"type":"WEB","url":"https://git.kernel.org/stable/c/524e0450dd9a396f99a81b045219b0e2ea0dab57"},{"type":"WEB","url":"https://git.kernel.org/stable/c/8ddf962c76432a10a6cb80042875cbc48a9c056b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/b5dbb41b212c50c095a4dbee3017a84fe94f033b"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98456.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98456"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"73d1df2a7a1036a1f000e5f0ece6ade3e082b854"},{"fixed":"524e0450dd9a396f99a81b045219b0e2ea0dab57"},{"fixed":"8ddf962c76432a10a6cb80042875cbc48a9c056b"},{"fixed":"416546cd6a54e9b68f2b91bc680b1ee17dcd77a1"},{"fixed":"2e8bba0360d1379bfa8da47c8f5dadbb10a3fba1"},{"fixed":"b5dbb41b212c50c095a4dbee3017a84fe94f033b"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98456.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.17.0"},{"fixed":"6.6.158"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.112"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.55"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.9"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98456.json"}}],"schema_version":"1.9.0"}