CVE-2025-21896: fuse: revert back to __readahead_folio() for readahead
In the Linux kernel, the following vulnerability has been resolved:
fuse: revert back to __readahead_folio() for readahead
In commit 3eab9d7bc2f4 ("fuse: convert readahead to use folios"), the
logic was converted to using the new folio readahead code, which drops
the reference on the folio once it is locked, using an inferred
reference on the folio. Previously we held a reference on the folio for
the entire duration of the readpages call.
This is fine, however for the case for splice pipe responses where we
will remove the old folio and splice in the new folio (see
fuse_try_move_page()), we assume that there is a reference held on the
folio for ap->folios, which is no longer the case.
To fix this, revert back to __readahead_folio() which allows us to hold
the reference on the folio for the duration of readpages until either we
drop the reference ourselves in fuse_readpages_end() or the reference is
dropped after it's replaced in the page cache in the splice case.
This will fix the UAF bug that was reported.
Security readout for executives and security teams
Plain-English summary
A Linux kernel FUSE flaw can cause use-after-free memory access during a specific file-read response path. A local, low-privileged attacker may be able to compromise confidentiality, integrity, or availability. The supplied record rates it 7.8 High, but provides no evidence of active exploitation.
Executive priority
Treat this as a high-priority kernel update for multi-user systems, shared compute, and hosts exposing FUSE to untrusted users. Schedule remediation promptly through normal kernel patching and reboot processes. Emergency response is not supported by the supplied evidence because active exploitation is not reported.
Technical view
A folio readahead conversion stopped retaining a reference throughout readpages. The FUSE splice-response path, particularly fuse_try_move_page(), still assumed that reference existed when replacing a folio, creating a use-after-free condition. The cited kernel changes restore __readahead_folio() so the reference remains valid until explicitly released or replaced.
Likely exposure
Exposure requires an affected Linux kernel and local low-privileged access; no user interaction is required. The vulnerable behavior involves FUSE readahead with splice pipe responses. The supplied affected-version metadata identifies Linux 6.13, through 6.13.6, and 6.14, but its formatting is ambiguous; confirm distribution backports directly.
Exploitation context
The CVSS vector indicates local, low-complexity exploitation requiring low privileges, with potentially high confidentiality, integrity, and availability impact. The source bundle marks the CVE as absent from KEV and cites no observed exploitation, public exploit, or attack campaign. This does not establish that exploitation is impossible.
Researcher notes
This is a reference-lifetime regression introduced by the folio readahead conversion. Risk centers on the mismatch between inferred folio ownership and fuse_try_move_page() assumptions during splice replacement. The record describes the root cause and correction, but provides no CWE, exploitability demonstration, affected-distribution mapping, or evidence of exploitation.
Mitigation direction
Apply a vendor-supported kernel update containing the cited FUSE correction or an equivalent backport.
Check distribution security guidance because package versions may differ from upstream kernel numbering.
Prioritize systems where untrusted local users can interact with FUSE-backed filesystems.
Where immediate patching is impossible, restrict untrusted local access and unnecessary FUSE use after operational review.
Validation and detection
Record each system's running kernel version and distribution package release.
Confirm whether the distribution kernel contains either cited corrective commit or an equivalent backport.
Identify hosts using FUSE and allowing untrusted local users.
Reboot after kernel replacement, then verify the running kernel matches the remediated package.
Review vendor advisories for corrected version ranges because the supplied affected metadata is ambiguous.
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-21896 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.