BTR revive Spectre v2 para filtrar memoria en Linux pese a las mitigaciones
BTR revive Spectre v2 para filtrar memoria en Linux pese a las mitigaciones
Branch Target Reuse reutiliza predicciones de salto obsoletas en compiladores JIT. Investigadores demostraron la fuga de memoria del kernel Linux y del hash de root en sistemas Intel con las defensas de Spectre activadas.
Una nueva ruta práctica para Spectre v2
Investigadores de VUSec y de la Scuola Superiore Sant'Anna presentaron Branch Target Reuse (BTR), una técnica que convierte la reutilización de memoria ejecutable de compiladores JIT en una primitiva de ejecución especulativa después de liberar. El embargo se levantó el 29 de septiembre y el trabajo fue aceptado en ACM CCS 2026.
El ataque entrena una entrada del predictor de saltos indirectos, libera el bloque de código que la originó y fuerza al JIT a reutilizar parcialmente esa dirección. La CPU puede seguir temporalmente el destino obsoleto y ejecutar de forma especulativa bytes del nuevo bloque como un gadget controlable, lo que abre una vía de lectura lateral de secretos.
Prueba completa contra el kernel Linux
El equipo construyó dos exploits de extremo a extremo contra el JIT de cBPF del kernel. En su demostración sobre un procesador Intel moderno, BTR filtró memoria arbitraria a unos ocho bytes por segundo y recuperó el hash de la contraseña de root desde la memoria del proceso su, aun con las mitigaciones disponibles habilitadas.
La investigación también encontró una superficie viable en SpiderMonkey, el motor JavaScript y WebAssembly de Firefox, donde una página maliciosa podría influir en el código JIT. Existe una prueba de concepto, pero los autores no desarrollaron un exploit completo de navegador. En GraalVM lograron saltar especulativamente la máscara que delimita el sandbox, aunque la actividad del propio compilador y del recolector de basura eliminó las entradas necesarias antes de completar una fuga.
Intel, AMD y Arm comparten la condición subyacente
Los procesadores evaluados de Intel, AMD y Arm conservan entradas de predicción tras la liberación y reutilización del código JIT. Los fabricantes señalaron que ya existen mecanismos de hardware, como IBPB, pero que el software debe invocarlos en los puntos de reutilización adecuados.
Linux incorporó mitigaciones asociadas a CVE-2026-64507 y CVE-2026-64508: emite un IBPB en todos los núcleos cuando una región BPF JIT previamente ejecutada se reutiliza y endurece la asignación frente a JIT spraying. Oracle aleatorizó ubicaciones de la caché de código de GraalVM; Mozilla prioriza completar el aislamiento de sitios.
Medidas defensivas
BTR requiere que el atacante ejecute código en el mismo entorno donde opera el JIT vulnerable, por lo que no equivale a una lectura remota directa. Sin embargo, afecta fronteras de confianza relevantes: filtros BPF, sandboxes de runtimes y, potencialmente, contenido web compartiendo proceso.
- Aplicar las actualizaciones del kernel que incluyan las correcciones de CVE-2026-64507 y CVE-2026-64508 y reiniciar en el kernel corregido.
- Actualizar GraalVM y los navegadores a las compilaciones más recientes y acelerar la adopción de aislamiento de sitios donde esté disponible.
- Reducir la ejecución de código no confiable en runtimes JIT privilegiados y revisar el uso de cBPF/eBPF en cargas multiusuario.
- No desactivar las mitigaciones de Spectre por rendimiento sin medir el riesgo de cada carga y frontera de aislamiento.
Fuentes y referencias
Esta publicación es una síntesis original. Consulte las fuentes primarias para información técnica completa y actualizaciones.
- 1BleepingComputer ↗prensa especializada
- 2Phoronix ↗prensa especializada
- 3
- 4SecurityWeek ↗prensa especializada
- 5VUSec ↗otra
¿Esta amenaza puede afectar a su empresa?
ENERIT puede ayudarle a evaluar exposición, priorizar remediaciones y fortalecer su operación de ciberseguridad.
Hablar con un especialista