CVE-2025-37906: ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd
In the Linux kernel, the following vulnerability has been resolved:
ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd
ublk_cancel_cmd() calls io_uring_cmd_done() to complete uring_cmd, but
we may have scheduled task work via io_uring_cmd_complete_in_task() for
dispatching request, then kernel crash can be triggered.
Fix it by not trying to canceling the command if ublk block request is
started.
Security readout for executives and security teams
Plain-English summary
A race condition in the Linux ublk block-device subsystem can crash the kernel when command completion and cancellation overlap. Successful exploitation requires local access with low privileges according to the CVSS vector. A crash could disrupt affected hosts; the supplied description does not demonstrate data theft or modification.
Executive priority
Treat as a high-priority availability risk where affected Linux hosts use ublk and permit local low-privileged access. Prioritize shared infrastructure and untrusted workloads. Confirm vendor package guidance promptly because the supplied version information does not clearly define every affected or fixed release.
Technical view
ublk_cancel_cmd() may call io_uring_cmd_done() after io_uring_cmd_complete_in_task() has scheduled task work for the same request. This unsafe completion-versus-cancellation race can trigger a kernel crash. The documented fix avoids cancelling a command after its ublk block request has started.
Likely exposure
Exposure is limited to Linux systems running an affected kernel and using the ublk subsystem. The supplied version data identifies 6.7, 6.14.6, and 6.15 but is insufficiently structured to establish precise affected and fixed ranges. Systems without ublk usage are less likely to encounter the vulnerable path.
Exploitation context
The CVSS 3.1 vector scores 7.8 and indicates local access, low complexity, low privileges, no user interaction, and potentially high confidentiality, integrity, and availability impact. The source bundle does not mark this CVE as KEV and provides no evidence of active exploitation or a public exploit.
Researcher notes
The concrete failure described is a kernel crash caused by competing io_uring command completion paths. Although the CVSS vector assigns high impact across confidentiality, integrity, and availability, the supplied technical narrative establishes only the crash outcome. Precise reachability conditions, affected version boundaries, exploit reliability, and real-world exploitation are not established.
Mitigation direction
Identify hosts using ublk and prioritize exposed multi-user or untrusted-workload systems.
Install a vendor-supported kernel containing the referenced upstream stable fix.
Check distribution advisories for exact affected and fixed package versions.
Restrict unnecessary local access until affected kernels are remediated.
Disable unused ublk functionality only when operationally safe and vendor-supported.
Validation and detection
Record each host's running kernel and distribution package version.
Determine whether ublk is enabled, loaded, configured, or actively used.
Compare installed packages with current distribution security advisories.
Confirm the updated kernel incorporates either referenced stable commit.
Reboot after updating and verify the remediated kernel is running.
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-37906 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.
1CVSS vectors
3Timeline events
0ADP providers
3Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.