{"id":"CVE-2026-31511","state":"PUBLISHED","title":"Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete\n\nThis fixes the condition checking so mgmt_pending_valid is executed\nwhenever status != -ECANCELED otherwise calling mgmt_pending_free(cmd)\nwould kfree(cmd) without unlinking it from the list first, leaving a\ndangling pointer. Any subsequent list traversal (e.g.,\nmgmt_pending_foreach during __mgmt_power_off, or another\nmgmt_pending_valid call) would dereference freed memory.","publishedAt":"2026-04-22T13:54:29.420Z","updatedAt":"2026-10-19T18:45:54.516Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0b60eb04b8524e1b4b3f07fea0d16fda9a677d9a","status":"affected","lessThan":"2074dfffad76981ca451cb7fc98703d04ac562fe","versionType":"git"},{"version":"d71b98f253b079cbadc83266383f26fe7e9e103b","status":"affected","lessThan":"340666172cf747de58c283d2eef1f335f050538b","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"bafec9325d4de26b6c49db75b5d5172de652aae0","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"3a89c33deffb3cb7877a7ea2e50734cd12b064f2","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"5f5fa4cd35f707344f65ce9e225b6528691dbbaa","versionType":"git"},{"version":"87a1f16f07c6c43771754075e08f45b41d237421","status":"affected","versionType":"git"},{"version":"6.12.59","status":"affected","lessThan":"6.12.80","versionType":"semver"},{"version":"6.16.10","status":"affected","lessThan":"6.17","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/mgmt.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.17","versionType":"semver"},{"version":"6.12.80","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.21","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.11","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/mgmt.c"]}],"references":["https://git.kernel.org/stable/c/2074dfffad76981ca451cb7fc98703d04ac562fe","https://git.kernel.org/stable/c/340666172cf747de58c283d2eef1f335f050538b","https://git.kernel.org/stable/c/bafec9325d4de26b6c49db75b5d5172de652aae0","https://git.kernel.org/stable/c/3a89c33deffb3cb7877a7ea2e50734cd12b064f2","https://git.kernel.org/stable/c/5f5fa4cd35f707344f65ce9e225b6528691dbbaa"],"weaknesses":["CWE-416"],"ingestedAt":"2026-10-29T20:11:40.391Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/31xxx/CVE-2026-31511.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-31511","state":"PUBLISHED","datePublished":"2026-04-22T13:54:29.420Z","dateUpdated":"2026-10-19T18:45:54.516Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-03-09T15:48:24.106Z"},"containers":{"cna":{"title":"Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete\n\nThis fixes the condition checking so mgmt_pending_valid is executed\nwhenever status != -ECANCELED otherwise calling mgmt_pending_free(cmd)\nwould kfree(cmd) without unlinking it from the list first, leaving a\ndangling pointer. Any subsequent list traversal (e.g.,\nmgmt_pending_foreach during __mgmt_power_off, or another\nmgmt_pending_valid call) would dereference freed memory."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"0b60eb04b8524e1b4b3f07fea0d16fda9a677d9a","status":"affected","lessThan":"2074dfffad76981ca451cb7fc98703d04ac562fe","versionType":"git"},{"version":"d71b98f253b079cbadc83266383f26fe7e9e103b","status":"affected","lessThan":"340666172cf747de58c283d2eef1f335f050538b","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"bafec9325d4de26b6c49db75b5d5172de652aae0","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"3a89c33deffb3cb7877a7ea2e50734cd12b064f2","versionType":"git"},{"version":"302a1f674c00dd5581ab8e493ef44767c5101aab","status":"affected","lessThan":"5f5fa4cd35f707344f65ce9e225b6528691dbbaa","versionType":"git"},{"version":"87a1f16f07c6c43771754075e08f45b41d237421","status":"affected","versionType":"git"},{"version":"6.12.59","status":"affected","lessThan":"6.12.80","versionType":"semver"},{"version":"6.16.10","status":"affected","lessThan":"6.17","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/mgmt.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.17","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.17","versionType":"semver"},{"version":"6.12.80","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.21","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"6.19.11","status":"unaffected","lessThanOrEqual":"6.19.*","versionType":"semver"},{"version":"7.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/bluetooth/mgmt.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2074dfffad76981ca451cb7fc98703d04ac562fe"},{"url":"https://git.kernel.org/stable/c/340666172cf747de58c283d2eef1f335f050538b"},{"url":"https://git.kernel.org/stable/c/bafec9325d4de26b6c49db75b5d5172de652aae0"},{"url":"https://git.kernel.org/stable/c/3a89c33deffb3cb7877a7ea2e50734cd12b064f2"},{"url":"https://git.kernel.org/stable/c/5f5fa4cd35f707344f65ce9e225b6528691dbbaa"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable path is reached by a local process sending `MGMT_OP_ADD_ADV_PATTERNS_MONITOR` or `_RSSI` over a `PF_BLUETOOTH` HCI management/control socket. Remote Bluetooth peers do not issue MGMT commands into this path.\nAC:L - The bug occurs on normal non-canceled completion: the command is freed without being unlinked, and the attacker can trigger later list traversal with another MGMT command or device power/index removal. No uncontrollable race is required.\nPR:L - The affected handlers are not marked untrusted, so the socket must be trusted via `CAP_NET_ADMIN`. Because the checks use namespace-scoped capability checks and can be satisfied by an unprivileged local user through user namespaces in plausible deployments, this is Low rather than High.\nUI:N - After obtaining the required local privileges, the attacker can send the MGMT command and trigger the follow-up traversal directly. No victim action is required.\nS:U - The vulnerability corrupts kernel Bluetooth/MGMT state within the same kernel security authority. This is standard local kernel memory corruption, not a VM, IOMMU, or cross-authority boundary escape for CVSS scope.\nC:H - This is a use-after-free of `struct mgmt_pending_cmd` left on a kernel list, and freed slab contents can be reclaimed or read during later traversal. Under the required conservative kernel guidance, UAFs are scored as high confidentiality impact.\nI:H - The dangling list entry can lead to attacker-influenced use of freed kernel memory and list operations/callback dereferences, which is defensibly exploitable beyond a crash. Under the required conservative kernel guidance, UAF memory corruption is high integrity impact.\nA:H - Subsequent traversal of the freed pending command can dereference freed memory and cause a kernel oops/panic, as similar MGMT UAF fixes show. The attacker can trigger this repeatedly once the vulnerable state is created."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:23:11.297Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.59","versionEndExcluding":"6.12.80"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"6.18.21"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"6.19.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.17","versionEndExcluding":"7.0"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16.10"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-31511","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:10:27.942863Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-416","lang":"en","type":"CWE","description":"CWE-416 Use After Free"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T18:45:54.516Z"}}]}}}