Skip to main content

Linux Kernel EUVDEUVD-2026-86940

| CVE-2026-98109 MEDIUM
Race Condition (CWE-362)
2026-09-25 Linux GHSA-2gv9-7823-fxfm
4.7
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local low-privileged access
  2. Delivery
    Trigger HCI device registration with quirk
  3. Exploit
    Race power_on against msft_register
  4. Execution
    Lock uninitialized filter_lock mutex
  5. Impact
    Crash or warn, denying service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires local access to the system and the ability to trigger HCI device registration for a Bluetooth controller marked with quirks such as HCI_QUIRK_RAW_DEVICE, which sets the HCI_UNCONFIGURED flag. The bug is a narrow timing window in hci_register_dev() where the power_on work item runs on another CPU before hdev->msft_data's filter_lock mutex is initialized. Key limiting factors: it is local-only (AV:L), requires low privilege (PR:L), demands winning a high-complexity race (AC:H) that is hard to trigger reliably, affects only non-default quirk-flagged/unconfigured controllers, and primarily manifests on kernels built with lock debugging (DEBUG_LOCKS); impact is limited to availability with no confidentiality or integrity effect.

Impact

This is a low-to-moderate priority local availability issue, not a widespread remote threat. The CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H) scores 4.7 (Medium) and tells a consistent story: an attacker needs local access and low privileges, must win a high-complexity race condition (CWE-362) during HCI device registration, and the only impact is availability (C:N/I:N) - a DEBUG_LOCKS warning or potential crash from locking an uninitialized mutex. EPSS is very low at 0.17% (5th percentile), it is NOT on the CISA KEV list, and no public exploit code is referenced, so there is no public exploit identified at time of analysis. All real-world exploitation signals (low EPSS, no KEV, no POC, high attack complexity, local-only vector) align and point to low practical risk. One conflict to note: the input Tags list 'Information Disclosure,' but the CVSS vector explicitly sets C:N/I:N/A:H, meaning this is an availability/denial-of-service bug, not an information-disclosure one - the tag appears mislabeled and should not drive triage. Patch availability is confirmed via multiple git.kernel.org stable commits, so remediation is straightforward through normal kernel updates.

Exploit ScenarioDerived

A local low-privileged user triggers Bluetooth HCI device registration for a device flagged with quirks such as HCI_QUIRK_RAW_DEVICE and races the asynchronous power_on work item against msft_register(). If the power_on path (via hci_dev_do_close → msft_do_close) runs before mutex_init() on filter_lock completes, it locks an uninitialized mutex, producing a DEBUG_LOCKS warning and potential instability. No public exploit code exists, and the high timing-dependency of the race makes reliable triggering difficult.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 02, 2026

Uninitialized-mutex use in the Linux kernel Bluetooth HCI core can be triggered by a local low-privileged user who causes an HCI controller flagged with quirks such as HCI_QUIRK_RAW_DEVICE (and therefore HCI_UNCONFIGURED) to be registered while the power_on work item races ahead of msft_register() initialization. The window is a narrow timing race in hci_register_dev(), where hdev->msft_data is published before mutex_init(&msft->filter_lock) completes, so hci_power_on() -> hci_dev_do_close() -> msft_do_close() can lock an uninitialized mutex, producing a DEBUG_LOCKS warning and a kernel warning/backtrace (availability impact, no confidentiality or integrity effect). EPSS is 0.17% (5th percentile), there is no CISA KEV listing, and no public exploit code has been identified at time of analysis; vendor-released patches exist for the affected stable branches.

RemediationAI

Vendor-released patch: update to Linux 6.12.111, 6.18.53, 7.2.7 (or 7.3-rc2 on the mainline/development line), which contain the reordering fix; the specific upstream commits are https://git.kernel.org/stable/c/b1faf348c29e6f8302ec7769cbf1c1ef05be014f, https://git.kernel.org/stable/c/a11ebe8dc0333fb870bbbb656b34690e87ee3f98, https://git.kernel.org/stable/c/d427b1c71d9798083e954d3c13469dc0a2305868 and https://git.kernel.org/stable/c/57938bbdb9bf7fd41cbd5cd509ec10c4b22bec18. Because the fix reorders work-queue submission after idr_init()/msft_register() and defers the hdev->msft_data assignment until after mutex_init(), patching is the only complete remedy; distributions should be expected to carry the backport in their kernel-6.4/6.5/6.6-based streams. Where patching must be deferred, the practical compensating control is to avoid exposing unconfigured or HCI_QUIRK_RAW_DEVICE-flagged Bluetooth controllers to registration, or to unload/blacklist the Bluetooth stack (e.g. blacklist btusb and rmmod bluetooth) on hosts that do not need it - the trade-off being that all Bluetooth functionality is lost. Disabling the MSFT HCI extension is not a reliable standalone mitigation because it is compiled into the core path that msft_do_close() traverses. Note that the observable failure mode (DEBUG_LOCKS warning/backtrace) is primarily a lock-deprecation diagnostic present on debug kernels; systems running production configs without CONFIG_DEBUG_LOCK_ALLOC/PROVE_LOCKING may not trip the warning, which reduces, but does not eliminate, the underlying ordering defect. Since exploitation requires local access (PR:L, AV:L) and a hard-to-win timing race (AC:H) limited to quirk-flagged controllers, this is a low-to-moderate priority local availability issue rather than an urgent remote threat, and no public exploit code or CISA KEV activity has been identified at time of analysis.

Affected VersionsENISA

Linux 9e14606d8f38ea52a38c27692a9c1513c987a5da <d427b1c71d9798083e954d3c13469dc0a2305868
Linux 9e14606d8f38ea52a38c27692a9c1513c987a5da <57938bbdb9bf7fd41cbd5cd509ec10c4b22bec18
Linux 6.6
Linux patch: 7.3-rc2
Linux f9965f7f38c90449a5fb26edb8a7d22b1dcf0283
Linux patch: 6.12.111
Linux 6.5.3 <6.6
Linux patch: 6.18.53
Linux patch: 7.2.7
Linux patch: 0
Linux 9e14606d8f38ea52a38c27692a9c1513c987a5da <a11ebe8dc0333fb870bbbb656b34690e87ee3f98
Linux 6.4.16 <6.5
Linux 80fe27811c56ecd3896c3d511ab8298146071d98
Linux 9e14606d8f38ea52a38c27692a9c1513c987a5da <b1faf348c29e6f8302ec7769cbf1c1ef05be014f

Affected Packages

euvd linux fix: 6.5, 6.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is a classic time-of-check/time-of-use ordering defect (CWE-362, concurrent execution using shared resource with improper synchronization) inside the Bluetooth host controller interface (HCI) core of the Linux kernel. In hci_register_dev(), the power_on work item was queued onto hdev->req_workqueue before two pieces of device state were ready: the IDR hdev->adv_monitors_idr was not yet initialized, and the Microsoft (MSFT) extension had not yet been registered via msft_register(). For controllers annotated with quirks such as HCI_QUIRK_RAW_DEVICE, the HCI_UNCONFIGURED flag is set, so when power_on runs concurrently on another CPU, hci_power_on() immediately calls hci_dev_do_close(), whose synchronous close path (hci_dev_close_sync -> msft_do_close) dereferences hdev->msft_data. Because msft_register() assigned hdev->msft_data to the newly allocated msft structure before calling mutex_init(&msft->filter_lock), a window exists in which msft_do_close() calls mutex_lock() on a mutex whose magic field is still uninitialized. On kernels built with lock debugging this fires DEBUG_LOCKS_WARN_ON(lock->magic != lock) at kernel/locking/mutex.c:625 (__mutex_lock_common), as shown in the reported hci_power_on -> hci_dev_do_close -> hci_dev_close_sync -> msft_do_close trace. The upstream fix reorders hci_register_dev() so queue_work() occurs only after idr_init(&hdev->adv_monitors_idr) and msft_register(hdev), and additionally assigns hdev->msft_data inside msft_register() only after mutex_init() has completed. Note that the source tags label this as 'Information Disclosure', but the assessed vector (C:N/I:N/A:H) and the described symptom indicate a lock-debugging warning with availability impact only; the disclosure tag should not be read as an exposure of kernel or user data. Affected code is present in mainline and stable trees whose CPE data is represented by the generic cpe:2.3:a:linux:linux entries, meaning version-agnostic kernel CPEs that must be matched against the branch-specific affected/fixed ranges below.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 4.7 MEDIUM

Local triggering of device registration gives AV:L and PR:L, the race window gives AC:H, and the uninitialized-mutex warning/crash is availability-only (C:N/I:N/A:H).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 5.5 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

4
CVSS changed
Oct 02, 2026 - 15:22 NVD
4.7 (MEDIUM)
Patch available
Sep 25, 2026 - 12:02 EUVD
CVE Published
Sep 25, 2026 - 10:35 nvd
MEDIUM 4.7
CVE Published
Sep 25, 2026 - 10:35 cve.org
UNKNOWN (no severity yet)

DescriptionNVD

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: hci_core: Fix race condition during device registration

In hci_register_dev(), the power_on work item is queued to hdev->req_workqueue before initializing hdev->adv_monitors_idr and registering the MSFT extension via msft_register(). For devices marked with quirks such as HCI_QUIRK_RAW_DEVICE, the HCI_UNCONFIGURED flag is set on the device. When the power_on work item runs concurrently on another CPU, hci_power_on() detects that the device is unconfigured and immediately invokes hci_dev_do_close(), which calls msft_do_close().

Concurrently, msft_register() allocates the msft structure and exposes it to hdev->msft_data prior to calling mutex_init(&msft->filter_lock). If msft_do_close() executes while hdev->msft_data is already assigned but the mutex has not yet been initialized, mutex_lock(&msft->filter_lock) operates on an uninitialized mutex, triggering a DEBUG_LOCKS warning:

DEBUG_LOCKS_WARN_ON(lock->magic != lock) WARNING: kernel/locking/mutex.c:625 at __mutex_lock_common kernel/locking/mutex.c:625 [inline] WARNING: kernel/locking/mutex.c:625 at __mutex_lock+0x12d8/0x1550 kernel/locking/mutex.c:821 ... Call Trace: <TASK> msft_do_close+0x308/0x7b0 net/bluetooth/msft.c:693 hci_dev_close_sync+0x86b/0x10a0 net/bluetooth/hci_sync.c:5522 hci_dev_do_close net/bluetooth/hci_core.c:499 [inline] hci_power_on+0x32c/0x750 net/bluetooth/hci_core.c:937 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3405 worker_thread+0x92d/0xe10 kernel/workqueue.c:3486 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 </TASK>

Fix this by moving the queue_work() call in hci_register_dev() to after idr_init(&hdev->adv_monitors_idr) and msft_register(hdev) so that device structures and extensions are fully initialized before asynchronous tasks can access them. Additionally, assign hdev->msft_data in msft_register() only after mutex_init(&msft->filter_lock) has completed.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Ubiquitous
core Linux kernel component, deployed across nearly all environments
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy