CVE-2025-22045

x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs

MEDIUM
5.5
CVSS Score
Published: April 16, 2025 at 02:12 PM UTC
Updated: October 15, 2026 at 10:18 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs On the following path, flush_tlb_range() can be used for zapping normal PMD entries (PMD entries that point to page tables) together with the PTE entries in the pointed-to page table: collapse_pte_mapped_thp pmdp_collapse_flush flush_tlb_range The arm64 version of flush_tlb_range() has a comment describing that it can be used for page table removal, and does not use any last-level invalidation optimizations. Fix the X86 version by making it behave the same way. Currently, X86 only uses this information for the following two purposes, which I think means the issue doesn't have much impact: - In native_flush_tlb_multi() for checking if lazy TLB CPUs need to be IPI'd to avoid issues with speculative page table walks. - In Hyper-V TLB paravirtualization, again for lazy TLB stuff. The patch "x86/mm: only invalidate final translations with INVLPGB" which is currently under review (see <https://lore.kernel.org/all/[email protected]/>) would probably be making the impact of this a lot worse.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

4.20 ≤ v < 5.4.2925.11 ≤ v < 5.15.1805.16 ≤ v < 6.1.1345.5 ≤ v < 5.10.2366.13 ≤ v < 6.13.116.14 ≤ v < 6.14.26.2 ≤ v < 6.6.876.7 ≤ v < 6.12.2316c4d92cd16f569c6485ae62b76c1a4b7795364.20
Vendor states this is fixed in 0708fd6bd8161871bfbadced2ca4319b84ab44fe (fixed)
Vendor states this is fixed in 0a8f806ea6b5dd64b3d1f05ff774817d5f7ddbd1 (fixed)
Vendor states this is fixed in 320ac1af4c0bdb92c864dc9250d1329234820edf (fixed)
Vendor states this is fixed in 3ef938c3503563bfc2ac15083557f880d29c2e64 (fixed)
Vendor states this is fixed in 556d446068f90981e5d71ca686bdaccdd545d491 (fixed)
Vendor states this is fixed in 618d5612ecb7bfc1c85342daafeb2b47e29e77a3 (fixed)
Vendor states this is fixed in 7085895c59e4057ffae17f58990ccb630087d0d2 (fixed)
Vendor states this is fixed in 78d6f9a9eb2a5da6fcbd76d6191d24b0dcc321be (fixed)
Vendor states this is fixed in 93224deb50a8d20df3884f3672ce9f982129aa50 (fixed)
Vendor states this is fixed in 4.20 (unaffected)
Vendor states this is fixed in 5.10.236 (unaffected)
Vendor states this is fixed in 5.15.180 (unaffected)
Vendor states this is fixed in 5.4.292 (unaffected)
Vendor states this is fixed in 6.1.134 (unaffected)
Vendor states this is fixed in 6.12.23 (unaffected)
Vendor states this is fixed in 6.13.11 (unaffected)
Vendor states this is fixed in 6.14.2 (unaffected)
Vendor states this is fixed in 6.15 (unaffected)
Vendor states this is fixed in 6.6.87 (unaffected)

References (11)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/0708fd6bd8161871bfbadced2ca4319b84ab44fe
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/0a8f806ea6b5dd64b3d1f05ff774817d5f7ddbd1
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/320ac1af4c0bdb92c864dc9250d1329234820edf
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/3ef938c3503563bfc2ac15083557f880d29c2e64
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/556d446068f90981e5d71ca686bdaccdd545d491
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/618d5612ecb7bfc1c85342daafeb2b47e29e77a3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/7085895c59e4057ffae17f58990ccb630087d0d2
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/78d6f9a9eb2a5da6fcbd76d6191d24b0dcc321be

SSVC — Action Prioritization

SSVCNo known exploitNot automatableTotal impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
NVD-CWE-noinfo

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card