{
  "affected": [
    {
      "ranges": [
        {
          "events": [
            {
              "introduced": "827af4787e74e8df9e8e0677a69fbb15e0856d2f"
            },
            {
              "fixed": "e0cd7b34dc6b5414cac3d4cd376f73d3e9ffbd93"
            },
            {
              "fixed": "481533b03985177ddc805e0bd12fc07e7adf9040"
            },
            {
              "fixed": "414b365ecea6c30357adee6b8a7c5edc03a03575"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "6.13.0"
            },
            {
              "fixed": "6.18.52"
            }
          ],
          "type": "ECOSYSTEM"
        },
        {
          "events": [
            {
              "introduced": "6.19.0"
            },
            {
              "fixed": "7.2.6"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90252.json"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: MGMT: free the HCI command when it is cancelled\n\nmgmt_hci_cmd_sync() queues the pending command with a NULL destroy\ncallback, so it is only freed if send_hci_cmd_sync() runs. A cancelled\nentry is leaked, as _hci_cmd_sync_cancel_entry() does not release\nentry-\u003edata when there is no destroy callback, and hci_cmd_sync_clear()\ncancels every pending entry when the controller is unregistered. Nothing\nelse reclaims it either: mgmt_pending_new() does not put the command on\nhdev-\u003emgmt_pending.\n\nThe leak also pins the socket reference taken by mgmt_pending_new(), so\nthe mgmt socket is never released.\n\nFree the command from a destroy callback. The now-empty done label is\nreplaced by a direct return.",
  "id": "CVE-2026-90252",
  "modified": "2026-09-19T03:30:52.484357830Z",
  "published": "2026-09-17T16:07:52.738Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/414b365ecea6c30357adee6b8a7c5edc03a03575"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/481533b03985177ddc805e0bd12fc07e7adf9040"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/e0cd7b34dc6b5414cac3d4cd376f73d3e9ffbd93"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90252.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-90252"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.0",
  "summary": "Bluetooth: MGMT: free the HCI command when it is cancelled"
}