CVE Catalog

CVE-2025-39899

MediumCVSS 5.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.14%

3th percentile - higher than 3% of all known CVEs

Summary

In the Linux kernel, move_pages_pte() in mm/userfaultfd maps PTE pages using kmap_local_page() but unmaps them in the same order (dst_pte, src_pte), violating the required LIFO order when CONFIG_HIGHPTE is enabled on 32-bit ARM. This triggers a warning in kunmap_local_indexed().

Risk Assessment

May cause kernel warnings and instability on 32-bit ARM systems with CONFIG_HIGHPTE, potentially disrupting applications using userfaultfd.

Recommendation

Update the Linux kernel to a version containing the fix that reverses the unmap order in move_pages_pte().

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: mm/userfaultfd: fix kmap_local LIFO ordering for CONFIG_HIGHPTE With CONFIG_HIGHPTE on 32-bit ARM, move_pages_pte() maps PTE pages using kmap_local_page(), which requires unmapping in Last-In-First-Out order. The current code maps dst_pte first, then src_pte, but unmaps them in the same order (dst_pte, src_pte), violating the LIFO requirement. This causes the warning in kunmap_local_indexed(): WARNING: CPU: 0 PID: 604 at mm/highmem.c:622 kunmap_local_indexed+0x178/0x17c addr \!= __fix_to_virt(FIX_KMAP_BEGIN + idx) Fix this by reversing the unmap order to respect LIFO ordering. This issue follows the same pattern as similar fixes: - commit eca6828403b8 ("crypto: skcipher - fix mismatch between mapping and unmapping order") - commit 8cf57c6df818 ("nilfs2: eliminate staggered calls to kunmap in nilfs_rename") Both of which addressed the same fundamental requirement that kmap_local operations must follow LIFO ordering.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS