In the Linux kernel, the following vulnerability has been resolved:
mm/huge_memory: fix folio isn't locked in softleaf_to_folio()
On arm64 server, we found folio that get from migration entry isn't locked in softleaf_to_folio(). This issue triggers when mTHP splitting and zap_nonpresent_ptes() races, and the root cause is lack of memory barrier in softleaf_to_folio(). The race is as follows:
CPU0 CPU1
deferred_split_scan() zap_nonpresent_ptes() lock folio split_folio() unmap_folio() change ptes to migration entries __split_folio_to_order() softleaf_to_folio() set flags(including PG_locked) for tail pages folio = pfn_folio(softleaf_to_pfn(entry)) smp_wmb() VM_WARN_ON_ONCE(!folio_test_locked(folio)) prep_compound_page() for tail pages
In __split_folio_to_order(), smp_wmb() guarantees page flags of tail pages are visible before the tail page becomes non-compound. smp_wmb() should be paired with smp_rmb() in softleaf_to_folio(), which is missed. As a result, if zap_nonpresent_ptes() accesses migration entry that stores tail pfn, softleaf_to_folio() may see the updated compound_head of tail page before page->flags.
This issue will trigger VM_WARN_ON_ONCE() in pfn_swap_entry_folio() because of the race between folio split and zap_nonpresent_ptes() leading to a folio incorrectly undergoing modification without a folio lock being held.
This is a BUG_ON() before commit 93976a20345b ("mm: eliminate further swapops predicates"), which in merged in v6.19-rc1.
To fix it, add missing smp_rmb() if the softleaf entry is migration entry in softleaf_to_folio() and softleaf_to_page().
[[email protected]: update function name and comments]
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-debuginfoUpgrade kernel-livepatch-5.15.204-143.230Upgrade kernel-debuginfo-common-aarch64Upgrade kernelUpgrade kernel-tools-debuginfoUpgrade kernel-headersUpgrade kernel-tools-develUpgrade perfUpgrade kernel-livepatch-5.10.253-252.1015Upgrade kernel-develUpgrade python-perf-debuginfoUpgrade bpftoolUpgrade kernel-toolsUpgrade perf-debuginfoUpgrade kernel-debuginfo-common-x86_64Upgrade bpftool-debuginfoUpgrade python-perf | May 20, 2026 | May 20, 2026 |
| Amazon_linux_2023 | — | Upgrade kernel-tools-debuginfoUpgrade kernel-libbpf-develUpgrade kernel6.12-modules-extraUpgrade bpftool6.12Upgrade kernel-modules-extraUpgrade kernel6.18-toolsUpgrade kernelUpgrade bpftool6.18-debuginfoUpgrade kernel6.12Upgrade kernel6.12-debuginfo-common-x86_64Upgrade python3-perf6.18-debuginfoUpgrade perf6.18-debuginfoUpgrade perf-debuginfoUpgrade python3-perf6.12Upgrade bpftool6.18Upgrade kernel6.12-tools-develUpgrade kernel6.18-modules-extraUpgrade kernel-libbpf-staticUpgrade perf6.12Upgrade kernel6.12-toolsUpgrade kernel6.12-debuginfoUpgrade kernel-headersUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12-modules-extra-commonUpgrade kernel6.18-tools-debuginfoUpgrade python3-perfUpgrade kernel-livepatch-6.12.83-113.160Upgrade bpftool6.12-debuginfoUpgrade kernel-tools-develUpgrade perf6.18Upgrade python3-perf6.18Upgrade kernel-debuginfo-common-x86_64Upgrade python3-perf6.12-debuginfoUpgrade kernel-livepatch-6.1.168-202.320Upgrade kernel6.18-debuginfoUpgrade kernel6.18-headersUpgrade kernel6.18-debuginfo-common-aarch64Upgrade kernel-toolsUpgrade kernel6.18-tools-develUpgrade kernel6.12-headersUpgrade perf6.12-debuginfoUpgrade kernel6.12-tools-debuginfoUpgrade perfUpgrade kernel-debuginfo-common-aarch64Upgrade kernel6.12-develUpgrade kernel-libbpf-debuginfoUpgrade bpftool-debuginfoUpgrade kernel-livepatch-6.18.25-52.107Upgrade kernel6.18-modules-extra-commonUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade kernel-modules-extra-commonUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18Upgrade kernel6.18-develUpgrade bpftool | May 19, 2026 | Apr 22, 2026 |
| Debian | — | Upgrade linux-6.1Upgrade linux | May 3, 2026 | May 3, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Apr 22, 2026 |
| Ubuntu | — | Upgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-azure-lts-24.04Upgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-azure-fips-6.8Upgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-lowlatencyUpgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1061-raspiUpgrade linux-image-aws-6.8Upgrade linux-image-6.8.0-1030-nvidia-tegraUpgrade linux-image-azure-fdeUpgrade linux-image-oracle-5.15Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-generic-64k-6.8Upgrade linux-image-generic-lpaeUpgrade linux-image-fipsUpgrade linux-image-intelUpgrade linux-image-5.15.0-1107-nvidiaUpgrade linux-image-6.8.0-1058-oracle-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-nvidia-tegra-igx-rt-5.15Upgrade linux-image-oem-22.04Upgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-aws-fipsUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-tegra-rt-5.15Upgrade linux-image-5.15.0-1104-kvmUpgrade linux-image-5.15.0-1111-realtimeUpgrade linux-image-virtualUpgrade linux-image-5.15.0-1112-gcpUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidia-5.15Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-6.8.0-1033-xilinxUpgrade linux-image-azure-fde-lts-22.04Upgrade linux-image-generic-64kUpgrade linux-image-fips-5.15Upgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-gkeopUpgrade linux-image-6.8.0-1046-gkeopUpgrade linux-image-intel-iotg-5.15Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-5.15.0-1104-intel-iot-realtimeUpgrade linux-image-6.8.0-1064-gcp-fipsUpgrade linux-image-6.8.0-1059-gkeUpgrade linux-image-azure-fde-lts-24.04Upgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-5.15Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1112-aws-fipsUpgrade linux-image-oem-22.04cUpgrade linux-image-5.15.0-1106-raspiUpgrade linux-image-intel-iotgUpgrade linux-image-nvidiaUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-ibmUpgrade linux-image-ibm-6.8Upgrade linux-image-nvidia-tegra-igx-5.15Upgrade linux-image-gke-5.15Upgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-generic-6.8Upgrade linux-image-5.15.0-186-generic-lpaeUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-gke-64kUpgrade linux-image-genericUpgrade linux-image-6.8.0-1059-nvidia-64kUpgrade linux-image-6.8.0-136-lowlatencyUpgrade linux-image-oem-20.04bUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-raspi-realtimeUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-6.8.0-1058-oracleUpgrade linux-image-gcpUpgrade linux-image-fips-6.8Upgrade linux-image-aws-lts-22.04Upgrade linux-image-azure-lts-22.04Upgrade linux-image-nvidia-tegra-rtUpgrade linux-image-xilinxUpgrade linux-image-5.15.0-1112-awsUpgrade linux-image-6.8.0-1064-gcp-64kUpgrade linux-image-5.15.0-1106-ibmUpgrade linux-image-6.8.0-1059-gke-64kUpgrade linux-image-nvidia-tegraUpgrade linux-image-nvidia-tegra-5.15Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-6.8.0-1059-nvidia-lowlatencyUpgrade linux-image-aws-64k-5.15Upgrade linux-image-5.15.0-1117-azure-fdeUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-1064-nvidia-tegra-rtUpgrade linux-image-5.15.0-1053-nvidia-tegra-igx-rtUpgrade linux-image-xilinx-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-gcp-5.15Upgrade linux-image-gcp-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-186-fipsUpgrade linux-image-5.15.0-1108-gkeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-ibm-5.15Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-lowlatency-5.15Upgrade linux-image-5.15.0-184-lowlatency-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-5.15.0-1107-nvidia-lowlatencyUpgrade linux-image-5.15.0-1117-azure-fipsUpgrade linux-image-5.15.0-1112-aws-64kUpgrade linux-image-azure-fde-5.15Upgrade linux-image-azureUpgrade linux-image-6.8.0-136-generic-64kUpgrade linux-image-5.15.0-186-genericUpgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-hwe-20.04Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-gcp-64kUpgrade linux-image-azure-fde-6.8Upgrade linux-image-6.8.0-1030-nvidia-tegra-rtUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-gke-6.8Upgrade linux-image-raspi-5.15Upgrade linux-image-oem-22.04bUpgrade linux-image-oem-20.04Upgrade linux-image-azure-6.8Upgrade linux-image-aws-lts-24.04Upgrade linux-image-6.8.0-1061-aws-fipsUpgrade linux-image-6.8.0-136-lowlatency-64kUpgrade linux-image-aws-5.15Upgrade linux-image-6.8.0-136-genericUpgrade linux-image-6.8.0-1059-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-186-generic-64kUpgrade linux-image-5.15.0-1112-gcp-fipsUpgrade linux-image-5.15.0-1095-gkeopUpgrade linux-image-5.15.0-1064-nvidia-tegraUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-realtimeUpgrade linux-image-realtime-5.15Upgrade linux-image-oracle-64kUpgrade linux-image-oem-22.04dUpgrade linux-image-oem-20.04dUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-generic-64k-5.15Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.8.0-2050-raspi-realtimeUpgrade linux-image-6.8.0-1064-gcpUpgrade linux-image-laptop-23.10Upgrade linux-image-nvidia-6.8Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1061-awsUpgrade linux-image-5.15.0-1117-azureUpgrade linux-image-5.15.0-1109-oracleUpgrade linux-image-5.15.0-1075-xilinx-zynqmpUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-raspiUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-kvmUpgrade linux-image-gkeop-5.15Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-azure-cvmUpgrade linux-image-aws-fips-5.15Upgrade linux-image-aws-64kUpgrade linux-image-6.8.0-1063-azure-fipsUpgrade linux-image-6.8.0-1063-azureUpgrade linux-image-6.8.0-1061-ibmUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-azure-5.15Upgrade linux-image-6.8.0-1061-aws-64kUpgrade linux-image-6.8.0-1059-nvidiaUpgrade linux-image-oracleUpgrade linux-image-azure-fips-5.15Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.1-1056-realtimeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-5.15.0-184-lowlatencyUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-gkeUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-6.8.0-1062-azure-fdeUpgrade linux-image-5.15.0-1107-intel-iotgUpgrade linux-image-5.15.0-1053-nvidia-tegra-igxUpgrade linux-image-virtual-6.8Upgrade linux-image-virtual-5.15Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-20.04cUpgrade linux-image-6.8.0-136-fipsUpgrade linux-image-aws | Jul 20, 2026 | Apr 22, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Apr 22, 2026 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub