← Back to CVE Explorer

CVE-2026-98462

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: hci_conn: fix CIS hold ownership on reuse Commit 69997d50ec57 ("Bluetooth: ISO: handle bound CIS cleanup via hci_conn") made hci_bind_cis() and hci_connect_cis() return a connection with one hold for the ISO layer. hci_bind_cis() currently takes that hold only after configuring a CIS, so its BT_CONNECTED and matching BT_BOUND paths return a bare lookup result. Its configuration failure path can likewise call hci_conn_drop() before taking a hold. Take the hold before any state-dependent return or configuration error so every successful return follows the documented ownership contract and every error drop is balanced. hci_connect_cis() also assumes hci_conn_link() always takes a new CIS hold before dropping the one returned by hci_bind_cis(). However, the helper returns an existing link without taking another hold. In that case, preserve the CIS hold for the caller and drop the redundant LE hold because the existing link already owns its parent hold. Returning early also avoids changing an existing CIS back to BT_CONNECT.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:16:56.660000
Last modified
2026-10-19 10:18:55.827000
View original CVE JSON
{
  "id": "CVE-2026-98462",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-18T16:16:56.660",
  "lastModified": "2026-10-19T10:18:55.827",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nBluetooth: hci_conn: fix CIS hold ownership on reuse\n\nCommit 69997d50ec57 (\"Bluetooth: ISO: handle bound CIS cleanup via\nhci_conn\") made hci_bind_cis() and hci_connect_cis() return a\nconnection with one hold for the ISO layer.  hci_bind_cis() currently\ntakes that hold only after configuring a CIS, so its BT_CONNECTED and\nmatching BT_BOUND paths return a bare lookup result.  Its configuration\nfailure path can likewise call hci_conn_drop() before taking a hold.\n\nTake the hold before any state-dependent return or configuration error\nso every successful return follows the documented ownership contract\nand every error drop is balanced.\n\nhci_connect_cis() also assumes hci_conn_link() always takes a new CIS\nhold before dropping the one returned by hci_bind_cis().  However, the\nhelper returns an existing link without taking another hold.  In that\ncase, preserve the CIS hold for the caller and drop the redundant LE\nhold because the existing link already owns its parent hold.  Returning\nearly also avoids changing an existing CIS back to BT_CONNECT."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "net/bluetooth/hci_conn.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "69997d50ec574be816b4ee8f9cee52ebbd53f8bd",
              "lessThan": "10f959cb435217b4b407864e5be0eb779e389490",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "69997d50ec574be816b4ee8f9cee52ebbd53f8bd",
              "lessThan": "072bc8659f22566083f8eef7dc5903bbcaf7804a",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "69997d50ec574be816b4ee8f9cee52ebbd53f8bd",
              "lessThan": "3ff5a8d949e3a2a435d0a5ee05074cd371b0158a",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "69997d50ec574be816b4ee8f9cee52ebbd53f8bd",
              "lessThan": "947eb2f41f70d371eb16897ee4e8e32bff73b476",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "69997d50ec574be816b4ee8f9cee52ebbd53f8bd",
              "lessThan": "e06d549fcd4a0ba381ed67ddf1ab3c7a6ca4314c",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "net/bluetooth/hci_conn.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.6",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.6",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.158",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.112",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.55",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.9",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/072bc8659f22566083f8eef7dc5903bbcaf7804a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/10f959cb435217b4b407864e5be0eb779e389490",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/3ff5a8d949e3a2a435d0a5ee05074cd371b0158a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/947eb2f41f70d371eb16897ee4e8e32bff73b476",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e06d549fcd4a0ba381ed67ddf1ab3c7a6ca4314c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}