Vulnerabilidad en el kernel de Linux 6.2 que podría eludir la protección contra ataques de Spectre v2

Se ha identificado una vulnerabilidad en el kernel de Linux 6.2 (CVE-2023-1998) que desactiva la protección contra los ataques de Spectre v2 que permiten el acceso a la memoria de otros procesos que se ejecutan en diferentes subprocesos SMT o Hyper Threading, pero en el mismo núcleo de procesador físico. La vulnerabilidad, entre otras cosas, se puede utilizar para organizar la fuga de datos entre máquinas virtuales en sistemas en la nube. El problema afecta solo al kernel de Linux 6.2 y es causado por una implementación incorrecta de optimizaciones diseñadas para reducir la sobrecarga significativa al aplicar protección contra Spectre v2. La vulnerabilidad fue corregida en la rama experimental del kernel Linux 6.3.

En el espacio del usuario, para protegerse contra los ataques de Spectre, los procesos pueden deshabilitar selectivamente la ejecución de instrucciones especulativas con prctl PR_SET_SPECULATION_CTRL o usar el filtrado de llamadas del sistema basado en seccomp. Según los investigadores que identificaron el problema, la optimización incorrecta en el kernel 6.2 dejó las máquinas virtuales de al menos un gran proveedor de nube sin la protección adecuada, a pesar de la inclusión del modo de bloqueo de ataques spectre-BTI a través de prctl. La vulnerabilidad también se manifiesta en servidores normales con el kernel 6.2, que se inician con la configuración “spectre_v2=ibrs”.

La esencia de la vulnerabilidad es que al elegir los modos de protección IBRS o eIBRS, las optimizaciones realizadas deshabilitaron el uso del mecanismo STIBP (Single Thread Indirect Branch Predictores), que es necesario para bloquear fugas cuando se usa tecnología de subprocesos múltiples simultáneos (SMT o Hyper-Threading). ). A su vez, solo el modo eIBRS brinda protección contra fugas entre hilos, no así el modo IBRS, ya que con él el bit IBRS, que brinda protección contra fugas entre núcleos lógicos, se borra por razones de rendimiento cuando el control vuelve al espacio del usuario, lo que hace que los subprocesos del espacio del usuario no estén protegidos contra los ataques de la clase Spectre v2.

Fuente: opennet.ru

Añadir un comentario