CVE-2025-38620: zloop: fix KASAN use-after-free of tag set
In the Linux kernel, the following vulnerability has been resolved:
zloop: fix KASAN use-after-free of tag set
When a zoned loop device, or zloop device, is removed, KASAN enabled
kernel reports "BUG KASAN use-after-free" in blk_mq_free_tag_set(). The
BUG happens because zloop_ctl_remove() calls put_disk(), which invokes
zloop_free_disk(). The zloop_free_disk() frees the memory allocated for
the zlo pointer. However, after the memory is freed, zloop_ctl_remove()
calls blk_mq_free_tag_set(&zlo->tag_set), which accesses the freed zlo.
Hence the KASAN use-after-free.
zloop_ctl_remove()
put_disk(zlo->disk)
put_device()
kobject_put()
...
zloop_free_disk()
kvfree(zlo)
blk_mq_free_tag_set(&zlo->tag_set)
To avoid the BUG, move the call to blk_mq_free_tag_set(&zlo->tag_set)
from zloop_ctl_remove() into zloop_free_disk(). This ensures that
the tag_set is freed before the call to kvfree(zlo).
Security readout for executives and security teams
Plain-English summary
This is a Linux kernel bug in the zoned loop device cleanup path. Removing a zloop device can access memory after it has already been freed. The provided sources do not describe remote attackability, privilege requirements, real-world exploitation, or business impact beyond the kernel memory-safety failure.
Executive priority
Treat as a kernel maintenance item unless your environment relies on zloop. There is no sourced evidence of active exploitation or remote impact, but kernel memory-safety bugs should be tracked to closure through normal patch governance.
Technical view
zloop_ctl_remove() calls put_disk(), which can invoke zloop_free_disk() and free the zlo structure. It then calls blk_mq_free_tag_set(&zlo->tag_set), dereferencing freed memory. The fix moves tag_set cleanup into zloop_free_disk() before kvfree(zlo).
Likely exposure
Exposure appears limited to Linux systems running the affected 6.16-era kernel versions or listed commit range, especially where zoned loop devices are created and removed. The bundle does not identify affected distributions, configurations, or whether zloop is enabled by default.
Exploitation context
The source bundle reports a KASAN-detected use-after-free during zloop device removal. It does not cite active exploitation, and KEV is false. No public exploit details, exploitability assessment, or attacker prerequisites are provided.
Researcher notes
The evidence is narrow: it documents the root cause and code-ordering fix, but not security impact, privilege boundaries, or exploitability. Analysis should focus on kernel version lineage, zloop availability, and whether removal operations are reachable in the target environment.
Mitigation direction
Check vendor or distribution kernel advisories for CVE-2025-38620 coverage.
Update to a kernel containing the referenced stable fixes when available.
Prioritize hosts that use zoned loop devices or custom kernel testing workflows.
If updates are delayed, review whether zloop usage can be avoided operationally.
Validation and detection
Inventory Linux kernel versions and compare against the affected range in the CVE record.
Confirm whether zloop or zoned loop device functionality is present and used.
Verify the referenced stable commits are included in deployed kernel sources or packages.
Review kernel logs for KASAN use-after-free reports involving zloop cleanup.
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-38620 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.
Aug 22, 2025, 16:00 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.