CVE-2025-68807: block: fix race between wbt_enable_default and IO submission
In the Linux kernel, the following vulnerability has been resolved:
block: fix race between wbt_enable_default and IO submission
When wbt_enable_default() is moved out of queue freezing in elevator_change(),
it can cause the wbt inflight counter to become negative (-1), leading to hung
tasks in the writeback path. Tasks get stuck in wbt_wait() because the counter
is in an inconsistent state.
The issue occurs because wbt_enable_default() could race with IO submission,
allowing the counter to be decremented before proper initialization. This manifests
as:
rq_wait[0]:
inflight: -1
has_waiters: True
rwb_enabled() checks the state, which can be updated exactly between wbt_wait()
(rq_qos_throttle()) and wbt_track()(rq_qos_track()), then the inflight counter
will become negative.
And results in hung task warnings like:
task:kworker/u24:39 state:D stack:0 pid:14767
Call Trace:
rq_qos_wait+0xb4/0x150
wbt_wait+0xa9/0x100
__rq_qos_throttle+0x24/0x40
blk_mq_submit_bio+0x672/0x7b0
...
Fix this by:
1. Splitting wbt_enable_default() into:
- __wbt_enable_default(): Returns true if wbt_init() should be called
- wbt_enable_default(): Wrapper for existing callers (no init)
- wbt_init_enable_default(): New function that checks and inits WBT
2. Using wbt_init_enable_default() in blk_register_queue() to ensure
proper initialization during queue registration
3. Move wbt_init() out of wbt_enable_default() which is only for enabling
disabled wbt from bfq and iocost, and wbt_init() isn't needed. Then the
original lock warning can be avoided.
4. Removing the ELEVATOR_FLAG_ENABLE_WBT_ON_EXIT flag and its handling
code since it's no longer needed
This ensures WBT is properly initialized before any IO can be submitted,
preventing the counter from going negative.
Security readout for executives and security teams
Plain-English summary
CVE-2025-68807 is a Linux kernel block-layer race condition that can leave writeback throttling counters inconsistent. The reported impact is hung tasks in the writeback path, which can degrade or stall affected systems. The bundle provides no CVSS score, CWE, or evidence of active exploitation.
Executive priority
Treat this as an availability risk until vendor scoring clarifies severity. Prioritize systems where kernel hangs could affect production storage, databases, or customer-facing services. No source in the bundle supports emergency exploitation response.
Technical view
A race between wbt_enable_default() and I/O submission can decrement WBT inflight state before proper initialization. That can drive rq_wait inflight negative, causing tasks to block in wbt_wait(). The fix separates WBT enable and initialization paths and initializes WBT during queue registration before I/O submission.
Likely exposure
Exposure is limited to Linux kernels matching the affected version information in the CVE source bundle. Systems with heavy writeback or block I/O activity may be more likely to encounter symptoms, but the bundle does not define attacker reachability, privilege requirements, or distribution-specific affected packages.
Exploitation context
The source bundle marks KEV as false and provides no cited evidence of active exploitation or public weaponization. The described failure mode is a race causing kernel hung tasks, not a documented remote compromise path.
Researcher notes
Evidence is incomplete for exploitability, CVSS, CWE, and exact distribution impact. The root issue is initialization ordering in block writeback throttling. Research should focus on affected kernel lines, backport status, and whether local workload patterns can reliably trigger the hung-task condition.
Mitigation direction
Review Linux vendor advisories for your distribution and kernel package.
Prioritize kernels containing the referenced stable fixes.
Schedule kernel updates for systems with critical storage workloads.
Monitor affected systems for hung task warnings in writeback paths.
Avoid inventing local workarounds without vendor confirmation.
Validation and detection
Inventory Linux kernel versions across servers and appliances.
Compare running kernels against vendor advisories and fixed package versions.
Check kernel logs for wbt_wait or rq_qos_wait hung task traces.
Confirm whether referenced stable commits are present in your kernel source or package changelog.
Track remediation evidence in vulnerability management records.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2025-68807 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
3Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Jan 13, 2026, 15:29 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.