CVE-2025-37958

In the Linux kernel, the following vulnerability has been resolved:

mm/huge_memory: fix dereferencing invalid pmd migration entry

When migrating a THP, concurrent access to the PMD migration entry during
a deferred split scan can lead to an invalid address access, as
illustrated below.  To prevent this invalid access, it is necessary to
check the PMD migration entry and return early.  In this context, there is
no need to use pmd_to_swp_entry and pfn_swap_entry_to_page to verify the
equality of the target folio.  Since the PMD migration entry is locked, it
cannot be served as the target.

Mailing list discussion and explanation from Hugh Dickins: "An anon_vma
lookup points to a location which may contain the folio of interest, but
might instead contain another folio: and weeding out those other folios is
precisely what the "folio != pmd_folio((*pmd)" check (and the "risk of
replacing the wrong folio" comment a few lines above it) is for."

BUG: unable to handle page fault for address: ffffea60001db008
CPU: 0 UID: 0 PID: 2199114 Comm: tee Not tainted 6.14.0+ #4 NONE
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:split_huge_pmd_locked+0x3b5/0x2b60
Call Trace:
<TASK>
try_to_migrate_one+0x28c/0x3730
rmap_walk_anon+0x4f6/0x770
unmap_folio+0x196/0x1f0
split_huge_page_to_list_to_order+0x9f6/0x1560
deferred_split_scan+0xac5/0x12a0
shrinker_debugfs_scan_write+0x376/0x470
full_proxy_write+0x15c/0x220
vfs_write+0x2fc/0xcb0
ksys_write+0x146/0x250
do_syscall_64+0x6a/0x120
entry_SYSCALL_64_after_hwframe+0x76/0x7e

The bug is found by syzkaller on an internal kernel, then confirmed on
upstream.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
UNKNOWN
---
LinuxCNA
---
---
Awaiting analysis
This vulnerability is currently awaiting analysis.
Base Score
CVSS 3.x
EPSS Score
Percentile: 4%
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
vulnerable
bullseye (security)
vulnerable
bookworm
vulnerable
bookworm (security)
vulnerable
trixie
vulnerable
sid
6.12.30-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
ignored
xenial
not-affected
trusty
not-affected
linux-allwinner-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
ignored
xenial
not-affected
trusty
not-affected
linux-aws-5.0
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-aws-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-5.3
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-aws-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-aws-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-fips
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
needed
bionic
needed
xenial
dne
trusty
dne
linux-aws-hwe
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
ignored
trusty
dne
linux-azure
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
ignored
xenial
ignored
trusty
ignored
linux-azure-4.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-5.3
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.11
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-edge
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-azure-fde
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
not-affected
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-fde-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-azure-fips
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
needed
bionic
needed
xenial
dne
trusty
dne
linux-azure-nvidia
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-bluefield
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-fips
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
needed
bionic
needed
xenial
not-affected
trusty
dne
linux-gcp
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
ignored
xenial
ignored
trusty
dne
linux-gcp-4.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gcp-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-5.3
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gcp-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gcp-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.11
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gcp-fips
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
needed
bionic
needed
xenial
dne
trusty
dne
linux-gke
plucky
dne
oracular
dne
noble
needed
jammy
needed
focal
ignored
bionic
dne
xenial
ignored
trusty
dne
linux-gke-4.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gke-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gke-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-gkeop
plucky
dne
oracular
dne
noble
needed
jammy
needed
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gkeop-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-gkeop-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-hwe
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
trusty
dne
linux-hwe-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-hwe-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.11
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-hwe-edge
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
trusty
dne
linux-ibm
plucky
dne
oracular
dne
noble
needed
jammy
needed
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-ibm-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-ibm-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-intel
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-intel-iot-realtime
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-iotg
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-iotg-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-iot
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-kvm
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
ignored
bionic
ignored
xenial
not-affected
trusty
dne
linux-lowlatency
plucky
dne
oracular
needed
noble
needed
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.11
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lowlatency-hwe-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-lts-xenial
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
not-affected
linux-nvidia
plucky
dne
oracular
dne
noble
needed
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-lowlatency
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-tegra
plucky
dne
oracular
dne
noble
needed
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-tegra-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-tegra-igx
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
trusty
dne
linux-oem-5.10
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.14
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.17
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-5.6
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.0
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.1
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.11
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem-6.8
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oracle
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
ignored
xenial
ignored
trusty
dne
linux-oracle-5.0
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-oracle-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.13
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-5.3
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-oracle-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-oracle-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-oracle-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oracle-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-raspi
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-raspi-5.4
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
dne
bionic
ignored
xenial
dne
trusty
dne
linux-raspi-realtime
plucky
dne
oracular
dne
noble
needed
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-raspi2
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
ignored
xenial
ignored
trusty
dne
linux-realtime
plucky
needed
oracular
needed
noble
needed
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv
plucky
needed
oracular
needed
noble
needed
jammy
ignored
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.11
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.15
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv-5.8
plucky
dne
oracular
dne
noble
dne
jammy
dne
focal
ignored
bionic
dne
xenial
dne
trusty
dne
linux-riscv-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-riscv-6.8
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-5.19
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-6.2
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-starfive-6.5
plucky
dne
oracular
dne
noble
dne
jammy
ignored
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-xilinx-zynqmp
plucky
dne
oracular
dne
noble
dne
jammy
needed
focal
ignored
bionic
dne
xenial
dne
trusty
dne