Vulnerability · Published Aug 22, 2026 · Assigned by Linux

CVE-2026-74591mm/filemap: __filemap_add_folio() restore index before retrying

Critical 9.8

In plain English

A critical-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 39% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.8Critical
Exploit odds (30 days)0.4%top 61.4% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: mm/filemap: __filemap_add_folio() restore index before retrying In __filemap_add_folio()'s split-a-conflict loop, xas_set_order() is applied repeatedly: each application modifies xas.xa_index, rounding it down according to the split_order attempted at that stage: and if all goes as intended, it eventually (or immediately) converges on an xas_try_split() to the required folio_order, with xas.xa_index now the same as index: then xas_store() puts the new folio into the xarray there. But if a new node was needed, and GFP_NOWAIT allocation did not get one, the lock is dropped, xas_nomem() used to allocate, and sequence retried. If (that part of) the xarray is unchanged when the lock is reacquired, no problem. But what if the conflict was meanwhile resolved by another thread (perhaps even doing the same thing, inserting a folio at that same index)? Isn't there a danger of now putting our folio into the xarray at an intermediate rounded-down index? With !folio_contains() bug to follow, when CONFIG_DEBUG_VM=y is checking for that. Fix this with an xas_set_order() to restore the original xas.xa_index at the bottom of the loop, so the retry does a full re-evaluation after reacquiring the lock, and cannot reach xas_store() with the wrong index. Production was suffering from rare SIGILLs and SIGSEGVs, executable text found a page away from where it belonged, !folio_contains() bug hit when debug enabled: symptoms not seen since this patch went in.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.1.9-1DEBIAN-CVE-2026-74591
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-74591
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-74591
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-74591
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-74591

Affected products (as reported)

VendorProductVersions
Linux Linux 200a89c159a7a416115e6e309183c82183bf98aa – before 4917e3ebcab50f0265e8ca01c8567de4c4a47511200a89c159a7a416115e6e309183c82183bf98aa – before 267ecd2eb7759c26f1a026eb0a5b231071534c9c200a89c159a7a416115e6e309183c82183bf98aa – before 86da3f7e1e609e1e8bfbab198af68467c5a015a5
Linux Linux 6.15

References