---
id: CVE-2026-31511
title: >-
  Bluetooth: MGMT: Fix dangling pointer on
  mgmt_add_adv_patterns_monitor_complete
summary: >-
  In the Linux kernel, the following vulnerability has been resolved:


  Bluetooth: MGMT: Fix dangling pointer on
  mgmt_add_adv_patterns_monitor_complete


  This fixes the condition checking so mgmt_pending_valid is executed

  whenever status != …
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 0b60eb04b8524e1b4b3f07fea0d16fda9a677d9a <
    2074dfffad76981ca451cb7fc98703d04ac562fe
  - >-
    Linux >= d71b98f253b079cbadc83266383f26fe7e9e103b <
    340666172cf747de58c283d2eef1f335f050538b
  - >-
    Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab <
    bafec9325d4de26b6c49db75b5d5172de652aae0
  - >-
    Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab <
    3a89c33deffb3cb7877a7ea2e50734cd12b064f2
  - >-
    Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab <
    5f5fa4cd35f707344f65ce9e225b6528691dbbaa
  - Linux 87a1f16f07c6c43771754075e08f45b41d237421
  - Linux >= 6.12.59 < 6.12.80
  - Linux >= 6.16.10 < 6.17
  - Linux 6.17
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: total
  timestamp: '2026-10-16T15:10:27.942863Z'
published: '2026-04-22'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:20:14.108Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-31511'
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'
tags:
  - cve.org
epss: 0.00175
epssPercentile: 0.0654
ingestedAt: '2026-10-16T17:24:46.659Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete

This fixes the condition checking so mgmt_pending_valid is executed
whenever status != -ECANCELED otherwise calling mgmt_pending_free(cmd)
would kfree(cmd) without unlinking it from the list first, leaving a
dangling pointer. Any subsequent list traversal (e.g.,
mgmt_pending_foreach during __mgmt_power_off, or another
mgmt_pending_valid call) would dereference freed memory.

## Affected

- `Linux >= 0b60eb04b8524e1b4b3f07fea0d16fda9a677d9a < 2074dfffad76981ca451cb7fc98703d04ac562fe`
- `Linux >= d71b98f253b079cbadc83266383f26fe7e9e103b < 340666172cf747de58c283d2eef1f335f050538b`
- `Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab < bafec9325d4de26b6c49db75b5d5172de652aae0`
- `Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab < 3a89c33deffb3cb7877a7ea2e50734cd12b064f2`
- `Linux >= 302a1f674c00dd5581ab8e493ef44767c5101aab < 5f5fa4cd35f707344f65ce9e225b6528691dbbaa`
- `Linux 87a1f16f07c6c43771754075e08f45b41d237421`
- `Linux >= 6.12.59 < 6.12.80`
- `Linux >= 6.16.10 < 6.17`
- `Linux 6.17`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
