CVE-2026-97908 (GCVE-0-2026-97908)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-30 12:37
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev The command and ACL RPMsg endpoints store struct btqcomsmd as their callback private data. The receive callbacks dereference btq->hdev without taking an hci_dev reference. The current teardown order frees the hci_dev before destroying the RPMsg endpoints in both the hci_register_dev() error path and the driver remove path. If WCNSS delivers data in that window, the endpoint callback can run with an already freed hci_dev and pass it to the Bluetooth core. For qcom_smd endpoints, rpmsg_destroy_ept() closes the channel and clears the callback under the channel recv_lock. The receive path holds the same lock while invoking the callback, so destroying the endpoints first both prevents new callbacks and serializes with any callback already running. Destroy the command and ACL endpoints before hci_free_dev(). Keep hci_unregister_dev() first during remove so the HCI core stops issuing operations before the transport endpoints are shut down. In the full registration-error cleanup path, return directly after freeing the hci_dev to avoid falling through to the partial-construction labels and destroying the endpoints twice.
Impacted products
Vendor Product Version
Linux Linux Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Version: 5052de8deff5619a9b7071f00084fd0264b58e17
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/bluetooth/btqcomsmd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "b9b34cc149f8344d1cffbf318eb1c8cb414f74ac",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "e2a0d9401368ec29bd0cdbfe9545d2a800429875",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "f5e4f81f4e075cd5ec062f81b576b88cdee998d1",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "aaa7f676418e1eb2c4ef0d4e4b07812b25e7b404",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "962dcc1d8a52e64428cae07806e7f6b8d3ec6ac0",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "2dcc2240b4e5f6e5dce1736f82666aba40eb3b13",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "2d016208a011558f211ec9687889df8318654730",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            },
            {
              "lessThan": "f5a427b16e45210dee656b0860728f3d496dee85",
              "status": "affected",
              "version": "5052de8deff5619a9b7071f00084fd0264b58e17",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/bluetooth/btqcomsmd.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.12"
            },
            {
              "lessThan": "4.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.273",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.224",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.191",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.160",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.111",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.273",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.224",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.191",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.160",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.111",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "4.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev\n\nThe command and ACL RPMsg endpoints store struct btqcomsmd as their\ncallback private data. The receive callbacks dereference btq-\u003ehdev\nwithout taking an hci_dev reference.\n\nThe current teardown order frees the hci_dev before destroying the RPMsg\nendpoints in both the hci_register_dev() error path and the driver remove\npath. If WCNSS delivers data in that window, the endpoint callback can\nrun with an already freed hci_dev and pass it to the Bluetooth core.\n\nFor qcom_smd endpoints, rpmsg_destroy_ept() closes the channel and clears\nthe callback under the channel recv_lock. The receive path holds the same\nlock while invoking the callback, so destroying the endpoints first both\nprevents new callbacks and serializes with any callback already running.\n\nDestroy the command and ACL endpoints before hci_free_dev(). Keep\nhci_unregister_dev() first during remove so the HCI core stops issuing\noperations before the transport endpoints are shut down. In the full\nregistration-error cleanup path, return directly after freeing the hci_dev\nto avoid falling through to the partial-construction labels and destroying\nthe endpoints twice."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-30T12:37:42.482Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/b9b34cc149f8344d1cffbf318eb1c8cb414f74ac"
        },
        {
          "url": "https://git.kernel.org/stable/c/e2a0d9401368ec29bd0cdbfe9545d2a800429875"
        },
        {
          "url": "https://git.kernel.org/stable/c/f5e4f81f4e075cd5ec062f81b576b88cdee998d1"
        },
        {
          "url": "https://git.kernel.org/stable/c/aaa7f676418e1eb2c4ef0d4e4b07812b25e7b404"
        },
        {
          "url": "https://git.kernel.org/stable/c/962dcc1d8a52e64428cae07806e7f6b8d3ec6ac0"
        },
        {
          "url": "https://git.kernel.org/stable/c/2dcc2240b4e5f6e5dce1736f82666aba40eb3b13"
        },
        {
          "url": "https://git.kernel.org/stable/c/2d016208a011558f211ec9687889df8318654730"
        },
        {
          "url": "https://git.kernel.org/stable/c/f5a427b16e45210dee656b0860728f3d496dee85"
        }
      ],
      "title": "Bluetooth: btqcomsmd: destroy RPMsg endpoints before freeing hci_dev",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97908",
    "datePublished": "2026-09-25T10:22:32.837Z",
    "dateReserved": "2026-09-25T10:18:58.200Z",
    "dateUpdated": "2026-10-30T12:37:42.482Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…