Skip to content
Heist/ feed
Back to feed
HighFix available

Bluetooth: mgmt: fix race in read_unconf_index_list()

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: mgmt: fix race in read_unconf_index_list() read_unconf_index_list() counts unconfigured controllers before allocating its response, then checks the device flags again while filling it. hci_dev_list_lock stabilizes list membership, but it does not serialize the per-device flags. During asynchronous controller setup, the worker can set HCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller omitted from the allocation count can then become eligible for the fill pass, causing an out-of-bounds write to rp->index[]. Allocate space for every device on hci_dev_list. Since list membership cannot change while hci_dev_list_lock is held, the response remains large enough regardless of flag transitions. The reported count and response length still include only eligible unconfigured controllers.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.273, 5.15.224, 6.1.191, 6.12.112, 6.18.55, 6.6.158, 7.2.9
CVEs
CVE-2026-98456
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 18:39 UTC · Revision 1

Source evidence

Bluetooth: mgmt: fix race in read_unconf_index_list()

core-osv · Original source

Published 18 Oct 2026, 15:15 UTC

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: mgmt: fix race in read_unconf_index_list() read_unconf_index_list() counts unconfigured controllers before allocating its response, then checks the device flags again while filling it. hci_dev_list_lock stabilizes list membership, but it does not serialize the per-device flags. During asynchronous controller setup, the worker can set HCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller omitted from the allocation count can then become eligible for the fill pass, causing an out-of-bounds write to rp->index[]. Allocate space for every device on hci_dev_list. Since list membership cannot change while hci_dev_list_lock is held, the response remains large enough regardless of flag transitions. The reported count and response length still include only eligible unconfigured controllers.

osv:CVE-2026-98456

Kernel

Fixed versions: 5.10.273, 5.15.224, 6.1.191, 6.6.158, 6.12.112, 6.18.55, 7.2.9

Complete source record
{
  "id": "85ce0a3f7effa5baf8de2cbab20ea93285dfb9a879280a40af239cce96093b7e",
  "url": "https://osv.dev/vulnerability/CVE-2026-98456",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Bluetooth: mgmt: fix race in read_unconf_index_list()",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: Bluetooth: mgmt: fix race in read_unconf_index_list() read_unconf_index_list() counts unconfigured controllers before allocating its response, then checks the device flags again while filling it. hci_dev_list_lock stabilizes list membership, but it does not serialize the per-device flags. During asynchronous controller setup, the worker can set HCI_UNCONFIGURED and clear HCI_SETUP between the two passes. A controller omitted from the allocation count can then become eligible for the fill pass, causing an out-of-bounds write to rp->index[]. Allocate space for every device on hci_dev_list. Since list membership cannot change while hci_dev_list_lock is held, the response remains large enough regardless of flag transitions. The reported count and response length still include only eligible unconfigured controllers.",
    "evidence": "osv:CVE-2026-98456",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.273",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.224",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.191",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.158",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.112",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.55",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.9",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-98456",
      "aliases": [
        "CVE-2026-98456"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "73d1df2a7a1036a1f000e5f0ece6ade3e082b854"
                },
                {
                  "fixed": "fa6f79bb0009406bb11e6912b53ab7c564d6f06b"
                },
                {
                  "fixed": "76dc7e0297f6f7ebefc36a69251e3f4a676d9853"
                },
                {
                  "fixed": "9c32455f490b960efccedd041c7aabb1a04c5cc4"
                },
                {
                  "fixed": "524e0450dd9a396f99a81b045219b0e2ea0dab57"
                },
                {
                  "fixed": "8ddf962c76432a10a6cb80042875cbc48a9c056b"
                },
                {
                  "fixed": "416546cd6a54e9b68f2b91bc680b1ee17dcd77a1"
                },
                {
                  "fixed": "2e8bba0360d1379bfa8da47c8f5dadbb10a3fba1"
                },
                {
                  "fixed": "b5dbb41b212c50c095a4dbee3017a84fe94f033b"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98456.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "3.17.0"
                },
                {
                  "fixed": "5.10.273"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.224"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.191"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.158"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.112"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.55"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.9"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98456.json"
          }
        }
      ],
      "modified": "2026-11-01T02:30:42.933686316Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/2e8bba0360d1379bfa8da47c8f5dadbb10a3fba1",
        "https://git.kernel.org/stable/c/416546cd6a54e9b68f2b91bc680b1ee17dcd77a1",
        "https://git.kernel.org/stable/c/524e0450dd9a396f99a81b045219b0e2ea0dab57",
        "https://git.kernel.org/stable/c/76dc7e0297f6f7ebefc36a69251e3f4a676d9853",
        "https://git.kernel.org/stable/c/8ddf962c76432a10a6cb80042875cbc48a9c056b",
        "https://git.kernel.org/stable/c/9c32455f490b960efccedd041c7aabb1a04c5cc4",
        "https://git.kernel.org/stable/c/b5dbb41b212c50c095a4dbee3017a84fe94f033b",
        "https://git.kernel.org/stable/c/fa6f79bb0009406bb11e6912b53ab7c564d6f06b",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98456.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98456",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98456.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98456",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 505779,
  "published_at": "2026-10-18T15:15:05.909+00:00"
}