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 iblkbits differs from I/O granularity
Commit aa35dd5cbc06 ("iomap: fix invalid folio access after folioendread()") partially addressed invalid folio access for folios without an ifs attached, but it did not handle the case where 1 << inode->iblkbits 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 (bytessubmitted == foliolen) ctx->curfolio = NULL;
in iomapreadfolioiter() will not invalidate ctx->curfolio, and iomapreadend() 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->curfolio for the !ifs case.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-31463?
CVE-2026-31463 has a severity rating that reflects potential impacts on system stability and security due to improper folio access.
How do I fix CVE-2026-31463?
To fix CVE-2026-31463, update your Linux kernel to the latest stable version where the vulnerability has been addressed.
What is the impact of CVE-2026-31463 on Linux systems?
CVE-2026-31463 can lead to invalid folio access, which may cause data corruption or system crashes.
Does CVE-2026-31463 affect all versions of the Linux kernel?
CVE-2026-31463 affects specific versions of the Linux kernel where the I/O granularity and i_blkbits differ.
When was CVE-2026-31463 disclosed?
CVE-2026-31463 was disclosed alongside the patch that fixed the vulnerability in the Linux kernel.