CVE-2025-22045

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/20241230175550.4046587-13-riel@surriel.com/>) would probably be making the impact of this a lot worse.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

31 Oct 2025, 20:41

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: x86/mm: Arregla flush_tlb_range() cuando se usa para zapping de PMD normales En la siguiente ruta, flush_tlb_range() se puede usar para zapping de entradas PMD normales (entradas PMD que apuntan a tablas de páginas) junto con las entradas PTE en la tabla de páginas apuntada: colapso_pte_mapped_thp pmdp_collapse_flush flush_tlb_range La versión arm64 de flush_tlb_range() tiene un comentario que describe que se puede usar para la eliminación de la tabla de páginas y no usa ninguna optimización de invalidación de último nivel. Arregla la versión X86 haciendo que se comporte de la misma manera. Actualmente, X86 solo usa esta información para los dos propósitos siguientes, lo que creo que significa que el problema no tiene mucho impacto: - En native_flush_tlb_multi() para verificar si las CPU TLB perezosas necesitan ser IPI'd para evitar problemas con recorridos especulativos de la tabla de páginas. En la paravirtualización de TLB de Hyper-V, de nuevo para problemas de TLB lentos. El parche "x86/mm: solo invalidar las traducciones finales con INVLPGB", actualmente en revisión (véase ), probablemente estaría agravando considerablemente el impacto de esto.
References () https://git.kernel.org/stable/c/0708fd6bd8161871bfbadced2ca4319b84ab44fe - () https://git.kernel.org/stable/c/0708fd6bd8161871bfbadced2ca4319b84ab44fe - Patch
References () https://git.kernel.org/stable/c/0a8f806ea6b5dd64b3d1f05ff774817d5f7ddbd1 - () https://git.kernel.org/stable/c/0a8f806ea6b5dd64b3d1f05ff774817d5f7ddbd1 - Patch
References () https://git.kernel.org/stable/c/320ac1af4c0bdb92c864dc9250d1329234820edf - () https://git.kernel.org/stable/c/320ac1af4c0bdb92c864dc9250d1329234820edf - Patch
References () https://git.kernel.org/stable/c/3ef938c3503563bfc2ac15083557f880d29c2e64 - () https://git.kernel.org/stable/c/3ef938c3503563bfc2ac15083557f880d29c2e64 - Patch
References () https://git.kernel.org/stable/c/556d446068f90981e5d71ca686bdaccdd545d491 - () https://git.kernel.org/stable/c/556d446068f90981e5d71ca686bdaccdd545d491 - Patch
References () https://git.kernel.org/stable/c/618d5612ecb7bfc1c85342daafeb2b47e29e77a3 - () https://git.kernel.org/stable/c/618d5612ecb7bfc1c85342daafeb2b47e29e77a3 - Patch
References () https://git.kernel.org/stable/c/7085895c59e4057ffae17f58990ccb630087d0d2 - () https://git.kernel.org/stable/c/7085895c59e4057ffae17f58990ccb630087d0d2 - Patch
References () https://git.kernel.org/stable/c/78d6f9a9eb2a5da6fcbd76d6191d24b0dcc321be - () https://git.kernel.org/stable/c/78d6f9a9eb2a5da6fcbd76d6191d24b0dcc321be - Patch
References () https://git.kernel.org/stable/c/93224deb50a8d20df3884f3672ce9f982129aa50 - () https://git.kernel.org/stable/c/93224deb50a8d20df3884f3672ce9f982129aa50 - Patch
First Time Linux linux Kernel
Linux
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
CWE NVD-CWE-noinfo

16 Apr 2025, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-04-16 15:15

Updated : 2025-10-31 20:41


NVD link : CVE-2025-22045

Mitre link : CVE-2025-22045

CVE.ORG link : CVE-2025-22045


JSON object : View

Products Affected

linux

  • linux_kernel