Vulnerabilities

Vulnerability · CVE-2026-99091

CVE-2026-99091: Bluetooth: MGMT: Fix status of pending commands flushed on power off

Published Oct 26, 2026 · catalog updated Oct 28, 2026 · Linux Linux Kernel

Last checked Nov 3, 2026. A connected source was read within the last 7 days.

Check if you run it

No confirmed exploitation is on record for CVE-2026-99091. EPSS is 0.17%. Act only if a listed version of Linux Linux Kernel is installed.

Gaps on this record

  • No vendor fix or required action is stored. Compare the linked advisory before you change production.

Same product and reporting

Severity
Medium—
Known exploitation
Not in CISA/VulnCheck KEV
EPSS
0.17%
Remediation
Advisory link
Affected products
Linux Kernel · linux kernel · package unmanaged

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix status of pending commands flushed on power off cmd_complete_rsp() receives a struct cmd_lookup and, for a pending command that has no cmd_complete callback, falls through to cmd_status_rsp(cmd, data). cmd_status_rsp() reads data as a u8 *, so the status sent comes from the first byte of match->sk's representation, not from match->mgmt_status. commit f53e1c9c726d ("Bluetooth: MGMT: Fix possible crash on mgmt_index_removed") changed the callers' data from &status to &match and updated the cmd_complete branch to match->mgmt_status, but left the fall-through passing data unchanged. In mgmt_index_removed() match->sk is NULL, so every such command is answered with status 0x00 (Success) instead of MGMT_STATUS_INVALID_INDEX. In __mgmt_power_off() it is NULL too, unless a Set Powered command was pending: then settings_rsp() has stored that command's socket in match->sk, and the byte sent comes from the socket pointer. Either way the status the caller set, MGMT_STATUS_NOT_POWERED (or MGMT_STATUS_INVALID_INDEX when the device is being unregistered), is lost. Pass the status the callers set. This was seen on a QCA9377 laptop: bluetoothd's Start Discovery, pending when the adapter was powered off, was answered with Command Status 0x00 and no parameters, and bluetoothd 5.72 crashed on the zero-length success. BlueZ master has since added the length check on that path ("adapter: Fix crash on short start discovery reply", BlueZ a734b06059cb), but userspace should still be told Not Powered, not Success. Tested on Ubuntu 7.0.0-31 with a virtual controller (hci_vhci): power off is held in HCI Write Scan Enable while a Start Discovery is submitted, and the flush answers it with status 0x00 before this change and 0x0f (Not Powered) after.

Are you affected?

Enter the version you run. The result uses only the ranges stored on this record.

The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.

  • Linux Kernel0 → 6.6.160; 6.7.0 → 6.12.113; 6.12.0 → 6.18.57
  • linux kernelversion unspecified
  • package unmanagedversion unspecified

How to fix CVE-2026-99091

What to do

Three questions, each answered from this record only. Confirm the vendor advisory before you patch.

Should you patch?

No confirmed exploitation is on record for CVE-2026-99091. EPSS is 0.17%. Act only if a listed version of Linux Linux Kernel is installed.

Which versions are affected?

Compare what you have installed with Kernel 0 → 6.6.160; 6.7.0 → 6.12.113; 6.12.0 → 6.18.57. Compare the installed version with the linked vendor advisory before you change production.

What should an analyst verify?

No weakness class is stored. EPSS 0.17%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Oct 26, 2026 · Linux Kernel CVE

    Detected

    From: Greg Kroah-Hartman Description =========== In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix status of pending commands flushed on power off cmd_complete_rsp() receives a struct cmd_lookup and, for a pending command that has no cmd_complete callback, falls through to cmd_status_rsp(cmd, data). cmd_status_rsp() reads data as a u8 *, so the status sent co

  2. Oct 28, 2026 · OpenSSF OSV / OSV Scanner

    Fix available

    Kernel fixed in 6.6.160; Kernel fixed in 6.12.113; Kernel fixed in 6.18.57; Kernel fixed in 7.2.11

  3. Oct 28, 2026 · OpenSSF OSV / OSV Scanner

    Fix available

    Kernel fixed in 6.6.160; 6.7.0

  4. Oct 28, 2026 · OpenSSF OSV / OSV Scanner

    Updated

    In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix status of pending commands flushed on power off cmd_complete_rsp() receives a struct cmd_lookup and, for a pending command that has no cmd_complete callback, falls through to cmd_status_rsp(cmd, data). cmd_status_rsp() reads data as a u8 *, so the status sent comes from the first byte of match->sk's representa

Sources

  • CVE.orgVulnerability recordCVE-2026-99091

    Official CVE identifier

    cve.org
  • FIRST EPSSExploitation probabilityCVE-2026-99091

    30-day exploitation probability 0.17%

    first.org
  • Linux Kernel CVEVendor advisoryCVE-2026-99091

    From: Greg Kroah-Hartman Description =========== In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: Fix status of pending commands flushed on power off cmd_complete_rsp() receives a struct cmd_lookup and, for a pending command that has no cmd_com

    git.kernel.org
  • OpenSSF OSV / OSV ScannerPackage advisoryCVE-2026-99091

    Bluetooth: MGMT: Fix status of pending commands flushed on power off

    osv.dev
  • Snyk Vulnerability DatabasePackage advisorySNYK-UNMANAGED-TORVALDSLINUX-21735661

    Denial of Service (DoS)

    security.snyk.io

References

Freshness

Last verified in this catalog Nov 3, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.

  • FIRST EPSSOct 31, 2026
  • Snyk Vulnerability DatabaseOct 29, 2026
  • OpenSSF OSV / OSV ScannerOct 28, 2026
  • Linux Kernel CVEOct 28, 2026
  • CVE.orgOct 27, 2026