CVE-2026-64229 in Linux
Resumen
por VulDB • 2026-07-24
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
x86/mm: Deshabilitar la actualización por difusión (broadcast) del TLB cuando PCID está deshabilitado
Arrancar con "nopcid" borra X86_FEATURE_PCID y evita que CR4.PCIDE sea establecido a uno. En CPUs AMD que soportan INVLPGB, las actualizaciones de TLB por difusión permanecen habilitadas.
Existen dos comprobaciones que determinan si se ejecuta el código ASID global: mm_global_asid() y consider_global_asid(), las cuales dependen de la característica X86_FEATURE_INVLPGB. Una vez que un proceso (mm) está activo en más de tres CPUs, consider_global_asid() le asigna un ASID global; tras esto, flush_tlb_mm_range() sigue la ruta broadcast_tlb_flush() utilizando un PCID distinto de cero. Emitir una instrucción INVLPGB con un PCID no nulo mientras CR4.PCIDE no está establecido provoca un #GP:
Oops: general protection fault, kernel NULL pointer dereference 0x1: 0000 [#1] SMP NOPTI
CPU: 158 UID: 0 PID: 3119 Comm: snap Not tainted 7.1.0-rc3 #1 PREEMPT(full) Hardware name: ... RIP: 0010:broadcast_tlb_flush Code: ... 89 da 48 83 c8 07 <0f> 01 fe eb 08 cc cc cc ... Call Trace: <TASK> flush_tlb_mm_range ptep_clear_flush wp_page_copy ? _raw_spin_unlock __handle_mm_fault handle_mm_fault do_user_addr_fault exc_page_fault asm_exc_page_fault
Todos los procesadores que soportan la invalidación de TLB por difusión también tienen soporte para PCID, por lo que únicamente el escenario "nopcid" es motivo de preocupación. En esta situación, simplemente se deshabilita el soporte de TLB por difusión mediante las dependencias CPUID, haciendo que X86_FEATURE_INVLPGB dependa de X86_FEATURE_PCID.
[ bp: Ajuste del mensaje del commit. ]
If you want to get best quality of vulnerability data, you may have to visit VulDB.