Explotan el modo de gestión del sistema x86 con una instrucción de un segundo de duración

Fuentes: Exploiting x86 System Management Mode with a very long single instruction

Un investigador de seguridad ha demostrado que el System Management Mode (SMM), el entorno de ejecución más privilegiado y aislado de los procesadores x86, puede romperse con una única instrucción máquina que tarda más de un segundo en completarse. La prueba de concepto, publicada en GitHub bajo el nombre "smiiiiiiiiiiiiiiii", se ejecuta sobre un AMD Ryzen 7 5800H (Zen 3).

SMM asume que todos los núcleos de la CPU entran o salen de ese modo de forma sincronizada, condición indispensable para su modelo de seguridad. El firmware UEFI/EDK2 implementa un rendezvous de un segundo (bucle CpuPause con temporizador StartSyncTimer) durante el cual cada núcleo espera a los demás antes de ejecutar código SMM. El ataque consigue que un núcleo permanezca ocupado durante toda esa ventana con una sola instrucción —una carga xmm ancha desde una dirección MMIO de alta latencia en 0xfcc68860— mientras otro núcleo entra en SMM y, al expirar el temporizador, ejecuta sus operaciones privilegiadas en solitario.

La consecuencia es una condición TOCTOU (time-of-check to time-of-use) entre núcleos: el código SMM se ejecuta creyendo que todos los demás están pausados, cuando uno sigue activo fuera de SMM y puede observar o manipular la memoria utilizada por la gestión del sistema. El repositorio incluye el código en C del exploit y los registros MSR (MSR_PERF_CTL0 0xc0010200 y MSR_PERF_CTR0 0xc0010201) empleados para detectar la divergencia entre contadores de SMI por núcleo. El autor recuerda que ya existen más de cien CVE de tipo TOCTOU en SMM y que esta técnica se suma a la lista de vectores de ataque contra el firmware.