Vuelve Spectre: nueva variante utiliza compiladores JIT para robar secretos

Vuelve Spectre: nueva variante utiliza compiladores JIT para robar secretos

Aunque la protección estaba activada, consiguieron acceder al hash raíz en cuestión de minutos.

image

Spectre volvió a encontrar una vulnerabilidad donde los programas convierten el código en instrucciones de máquina durante la ejecución. El equipo VUSec de la Universidad Libre de Ámsterdam y de la Scuola Superiore Sant'Anna demostró el ataque Branch Target Reuse (BTR), que aprovecha los compiladores JIT en el núcleo de Linux, en navegadores y en entornos de lenguajes para filtrar secretos.

El compilador JIT acelera el programa generando código máquina justo durante la ejecución. BTR explota una desincronización entre ese código y el predictor de saltos del procesador. Tras eliminar un fragmento antiguo de código JIT, el procesador puede conservar la entrada previa en el Branch Target Buffer y luego aplicarla al nuevo código que ocupó la misma región de memoria.

El atacante primero obliga al JIT a crear un fragmento de entrenamiento y entrena al procesador para que salte a un punto concreto. A continuación, el fragmento se libera y la memoria queda parcialmente ocupada por otro trozo de código. En el siguiente salto indirecto, el procesador puede especulativamente saltar a la dirección obsoleta y ejecutar instrucciones que ya no forman parte del flujo de control normal.

Los autores denominan el mecanismo «use-after-free especulativo»: la entrada obsoleta del predictor sobrevive al código para el que se creó. A nivel arquitectónico el procesador corrige rápidamente el salto erróneo, sin embargo los rastros de la ejecución especulativa permanecen en el estado microarquitectónico. A través de un canal lateral, el atacante puede recuperar datos a los que el código normal no tiene acceso.

El resultado más llamativo se obtuvo en Linux cBPF. Dos exploits completos en procesadores Intel modernos leían memoria arbitraria del núcleo con las protecciones estándar contra Spectre activadas. La velocidad fue de aproximadamente 8 bytes por segundo, pero la lectura dirigida bastó para, en unos minutos, llegar al hash de la contraseña root cargado por el proceso su.

El estudio también incluyó SpiderMonkey en Firefox y Oracle GraalVM. Para SpiderMonkey los autores confirmaron la posibilidad de ejecución especulativa mediante un buffer de código JIT reasignado y estimaron una fuga potencial de decenas de bytes por segundo, pero aún no desarrollaron un exploit completo para navegador. En GraalVM el recolector de basura borraba las entradas necesarias del BTB antes de que el ataque concluyera.

El comportamiento en el que se basa BTR fue encontrado por el equipo en todos los procesadores Intel, AMD y Arm probados. Un escenario práctico de extremo a extremo con robo de datos del núcleo se demostró en Intel. El trabajo continúa la cadena de ataques contra los predictores de saltos: anteriormente VUSec mostró Training Solo, donde Spectre-v2 empleó autoaprendizaje dentro de un único dominio.

Para Linux el problema se cierra con dos entradas. CVE-2026-64507 recibió 5,6 puntos según CVSS 3.1 en la valoración de Amazon Linux, y CVE-2026-64508 — 7,0 puntos según CVSS 3.1 en la valoración de Red Hat. Los valores difieren entre proveedores porque tienen en cuenta las particularidades de distribuciones y compilaciones del núcleo.

Los desarrolladores de Linux añadieron limpieza de los predictores mediante IBPB al reutilizar la memoria del BPF JIT. Oracle complicó la reutilización de direcciones antiguas del código mediante la aleatorización del emplazamiento del caché JIT. Mozilla consideró IBPB para SpiderMonkey, pero se centró en el aislamiento de sitios, que debería limitar el acceso de una página maliciosa a los datos de pestañas vecinas.

BTR muestra que barreras de hardware como IBT y BTI solo aumentan la complejidad de este tipo de ataques, pero no eliminan la brecha entre el código actual y el estado del predictor. Un problema similar ya fue explotado por el ataque VMScape contra máquinas virtuales. Los autores de BTR recomiendan actualizar los sistemas operativos y los entornos de software tan pronto como aparezcan las correcciones de los proveedores.