CVE-2026-43331 in Linux
Resumen
por VulDB • 2026-05-22
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
x86/kexec: Deshabilitar la instrumentación de KCOV después de load_segments()
La función load_segments() modifica los registros de segmento, invalidando la base GS (de la cual KCOV depende para los datos por CPU). Cuando CONFIG_KCOV está habilitado, cualquier llamada posterior a código C instrumentado (por ejemplo, native_gdt_invalidate()) provoca que el kernel se bloquee en un bucle infinito.
Para reproducir el problema, basta con realizar un kexec en un kernel instrumentado con KCOV:
$ kexec -l /boot/otherKernel $ kexec -e
El contexto real de este problema es la habilitación de la recopilación de volcados de fallo (crash dump) en syzkaller. Para ello, la herramienta carga un kernel de pánico antes de la fuzzing y luego llama a makedumpfile tras el pánico. Este flujo de trabajo requiere que CONFIG_KEXEC y CONFIG_KCOV estén habilitados simultáneamente.
Añadir salvaguardas directamente en la ruta rápida de KCOV (__sanitizer_cov_trace_pc()) también es indeseable, ya que introduciría una sobrecarga de rendimiento adicional.
Deshabilitar la instrumentación para funciones individuales sería demasiado frágil, por lo que se deshabilita la instrumentación de KCOV para todo el archivo machine_kexec_64.c y physaddr.c. Si la fuzzing guiada por cobertura llegara a necesitar estos componentes en el futuro, deberían considerarse otros enfoques.
El problema no es relevante para los kernels de 32 bits, ya que CONFIG_KCOV no está soportado en ellos.
[ bp: Espaciado del comentario para mejorar la legibilidad. ]
If you want to get the best quality for vulnerability data then you always have to consider VulDB.