CVE-2026-31463: iomap: fix invalid folio access when i_blkbits differs from I/O granularity
In the Linux kernel, the following vulnerability has been resolved:
iomap: fix invalid folio access when i_blkbits differs from I/O granularity
Commit aa35dd5cbc06 ("iomap: fix invalid folio access after
folio_end_read()") partially addressed invalid folio access for folios
without an ifs attached, but it did not handle the case where
1 << inode->i_blkbits matches the folio size but is different from the
granularity used for the IO, which means IO can be submitted for less
than the full folio for the !ifs case.
In this case, the condition:
if (*bytes_submitted == folio_len)
ctx->cur_folio = NULL;
in iomap_read_folio_iter() will not invalidate ctx->cur_folio, and
iomap_read_end() will still be called on the folio even though the IO
helper owns it and will finish the read on it.
Fix this by unconditionally invalidating ctx->cur_folio for the !ifs
case.
Security readout for executives and security teams
Plain-English summary
A Linux kernel iomap read-path bug can leave a folio referenced after the I/O helper has taken ownership, creating invalid memory access. It occurs when filesystem block size matches folio size but differs from I/O granularity. Impact could be severe, but supplied sources do not establish a practical remote attack path, affected filesystems, or exploitation in the wild.
Executive priority
Urgent verification and scheduled remediation are warranted because this is kernel memory-safety behavior with a supplied critical score. Escalate to emergency patching where an affected build and reachable iomap workload are confirmed. For other systems, obtain distributor guidance quickly; current evidence does not justify claiming widespread remote exploitation.
Technical view
During iomap_read_folio_iter(), partial-folio I/O in the no-ifs path may leave ctx->cur_folio set. iomap_read_end() can then act on a folio whose completion is owned by the I/O helper. The fix unconditionally clears ctx->cur_folio for that path. Supplied metadata identifies Linux 6.19-era releases as affected, but its flattened version bounds are ambiguous; confirm distributor mappings.
Likely exposure
Potentially exposed systems run affected Linux 6.19-series kernels and exercise the specific iomap read configuration. The bundle does not name distributions, filesystems, default configurations, cloud images, or appliances. It also contains unusual flattened version data around 6.19.11 and 7.0, so confirm package-level exposure with the relevant Linux distributor.
Exploitation context
KEV status is false, and no supplied source reports active exploitation, public proof-of-concept code, or a demonstrated remote attack chain. Although the supplied CVSS 9.8 vector indicates network-accessible, low-complexity, unauthenticated exploitation, the technical record does not explain how an external attacker reaches the faulty kernel path. Treat that gap as uncertainty, not proof of safety.
Researcher notes
The record describes a lifetime or ownership error in the no-ifs iomap read path, corrected by unconditional current-folio invalidation. No CWE, affected filesystem list, trigger provenance, crash signature, or exploit demonstration is supplied. The CVSS network vector is not reconciled with the code-level description, and version normalization is unclear; downstream advisories remain essential evidence.
Mitigation direction
Inventory deployed Linux kernel versions, including distribution package and backport identifiers.
Prioritize a supported kernel update containing the referenced fix; confirm the exact fixed build with your distributor.
Reboot systems into the updated kernel and avoid continued operational use of vulnerable kernel builds.
If updating is delayed, request vendor-supported mitigations; none are identified in the supplied sources.
Validation and detection
Compare each running kernel's source or package changelog against the two referenced stable commits.
Verify the no-ifs iomap path unconditionally clears ctx->cur_folio before read-end handling.
Confirm whether affected workloads use iomap reads where block size and I/O granularity differ.
Review kernel crash telemetry for iomap-related invalid folio access; absence of crashes does not establish non-exposure.
Recheck distributor advisories because the supplied version bounds are 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-2026-31463 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.