CVE-2025-39999: blk-mq: fix blk_mq_tags double free while nr_requests grown
In the Linux kernel, the following vulnerability has been resolved:
blk-mq: fix blk_mq_tags double free while nr_requests grown
In the case user trigger tags grow by queue sysfs attribute nr_requests,
hctx->sched_tags will be freed directly and replaced with a new
allocated tags, see blk_mq_tag_update_depth().
The problem is that hctx->sched_tags is from elevator->et->tags, while
et->tags is still the freed tags, hence later elevator exit will try to
free the tags again, causing kernel panic.
Fix this problem by replacing et->tags with new allocated tags as well.
Noted there are still some long term problems that will require some
refactor to be fixed thoroughly[1].
[1] https://lore.kernel.org/all/20250815080216.410665-1-yukuai1@huaweicloud.com/
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue can make an affected system crash when block-device queue request depth is increased through the nr_requests sysfs setting. The business impact is availability, not data theft, based on the provided sources. Severity and CVSS are not available, and there is no KEV evidence of active exploitation.
Executive priority
Treat this as a reliability patch for Linux infrastructure, especially systems where storage tuning is automated. It does not currently justify emergency response language from the provided evidence, but kernel panic risk can affect service availability.
Technical view
In blk-mq, growing nr_requests can replace hctx->sched_tags after freeing the old tag structure, while elevator->et->tags still points to the freed memory. Later elevator exit may free it again, causing a double free and kernel panic. The fix updates et->tags to the newly allocated tags.
Likely exposure
Likely exposure is Linux systems running affected kernel builds where administrators, automation, or storage tuning tools can change block queue nr_requests. The source bundle lists Linux 6.17, 6.17.1, 6.18, and 6.16.11 as affected, but distro backport status must be checked separately.
Exploitation context
The provided sources describe a user-triggered path through the queue sysfs nr_requests attribute, ending in a later kernel panic during elevator exit. They do not show remote exploitation, public exploit code, privilege requirements, or active exploitation.
Researcher notes
Evidence is limited to the kernel CVE description and stable commit references. The affected-version data appears sparse and should be reconciled with upstream stable branches and distro advisories. The source also notes longer-term blk-mq tag lifetime issues requiring future refactor work.
Mitigation direction
Apply vendor kernel updates containing the referenced stable fixes.
Check distribution advisories for backported fixes before relying on version numbers.
Restrict block queue sysfs tuning to trusted administrative workflows.
Avoid changing nr_requests on affected systems until patched, where operationally feasible.
Prioritize high-availability storage hosts and shared compute nodes.
Validation and detection
Inventory running Linux kernel versions and distro patch levels.
Confirm whether the referenced stable commits are present in deployed kernels.
Review automation that writes block queue nr_requests settings.
Check recent kernel logs for block-layer panics after queue tuning changes.
Test patched kernels in staging before production rollout.
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-39999 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
4Source 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.
Oct 15, 2025, 07:58 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.