Investigadores de VUSec y de la Scuola Superiore Sant’Anna han divulgado una nueva variante del ataque Spectre-v2, denominada Branch Target Reuse (BTR). El ataque explota la interacción entre código automodificable en motores JIT (Just-In-Time, compilación «al vuelo») y el mecanismo de predicción de saltos indirectos del procesador, lo que permite extraer datos confidenciales de la memoria del kernel de Linux. Ya se han publicado correcciones para el kernel de Linux — CVE-2026-64507 y CVE-2026-64508—, y esta última ha recibido una puntuación de 7.0 según CVSS v3.1 de acuerdo con el registro de Oracle Linux. Los administradores de sistemas Linux deben actualizar el kernel sin demora y comprobar el estado de las mitigaciones de Spectre-v2.
Mecanismo del ataque: entradas obsoletas en el buffer de objetivos de saltos
La esencia de BTR es que los procesadores modernos, al sobrescribir código en memoria (algo que ocurre constantemente en los motores JIT), restauran la coherencia arquitectónica, pero no necesariamente invalidan las entradas obsoletas en el buffer de objetivos de saltos (Branch Target Buffer, BTB). Cuando un motor JIT libera una región de memoria con código previamente compilado y luego asigna nuevo código en la misma dirección o en una dirección solapada, el procesador puede saltar especulativamente utilizando la entrada antigua del BTB, que apunta a código que ya no existe. Según los investigadores, esto crea un primitivo de «ejecución transitoria tras liberación» (transient execute-after-free), que permite al atacante interceptar el flujo de control especulativo.
La secuencia del ataque es la siguiente:
- El atacante hace que el motor JIT asigne un bloque de código «de entrenamiento» y dirija hacia él un salto indirecto, creando así una entrada en el BTB.
- El bloque de entrenamiento se libera y en su lugar (o con un solapamiento parcial de la dirección) se asigna un nuevo bloque objetivo.
- Cuando se vuelve a ejecutar el salto indirecto, el procesador utiliza la entrada obsoleta del BTB y salta especulativamente a la antigua dirección.
- El resultado es la interceptación del flujo de control especulativo y la fuga de datos confidenciales a través de un canal lateral de caché.
La condición crítica es que la entrada obsoleta del BTB debe conservarse después de que el motor JIT libere la memoria y debe ser elegida por el predictor de saltos en la siguiente ejecución. El ataque presupone la posibilidad de ejecutar código no privilegiado dentro del motor JIT.
Componentes afectados y alcance del impacto
Según los investigadores, BTR se probó en tres implementaciones JIT: SpiderMonkey (motor JIT de Mozilla Firefox), GraalVM y cBPF JIT del kernel de Linux; todas resultaron vulnerables, aunque con «características de explotabilidad y velocidad de fuga notablemente diferentes».
Es importante precisar el alcance del impacto confirmado. El registro de Oracle para CVE-2026-64508 describe la vulnerabilidad específicamente en el contexto del asignador BPF JIT del kernel de Linux: el problema aparece al reutilizar memoria en asignaciones empaquetadas (packed), y las asignaciones que superan el tamaño del paquete no están cubiertas por el mecanismo de limpieza del predictor. Esto significa que el ámbito real de afectación en el kernel de Linux es más reducido que el panorama multiplataforma presentado en el informe original. El impacto en SpiderMonkey y GraalVM sigue estando confirmado únicamente por el grupo de investigación; no se ha encontrado verificación independiente de estos datos.
Ni CVE-2026-64507 ni CVE-2026-64508 figuran en el catálogo CISA KEV. Para CVE-2026-64507 no se ha encontrado una puntuación CVSS verificada. Anteriormente publicamos un artículo sobre la inclusión de vulnerabilidades del kernel de Linux en el catálogo CISA KEV; en este caso, las vulnerabilidades BTR no tienen tal estatus.
Estado de explotación: PoC, no ataque activo
El informe original menciona dos exploits de demostración (proof-of-concept) para el kernel de Linux. Sin embargo, no se ha encontrado confirmación independiente de explotación activa en condiciones reales. El estado de explotación debe clasificarse como existencia de PoC público, y no como explotación confirmada en la naturaleza.
Correcciones y mitigaciones disponibles
Los parches para ambas CVE ya han sido aceptados en la rama principal del kernel de Linux. En cuanto a las distribuciones derivadas:
- Oracle Linux 9 y 10 (kernel-uek): la actualización ELSA-2026-500248 se publicó el 4 de septiembre de 2026 e incluye la corrección de CVE-2026-64508.
- GraalVM: Oracle ha aplicado aleatorización de la ubicación de la caché de código JIT; la correspondiente pull request fue aceptada el 19 de agosto de 2026.
- Mozilla Firefox: según los investigadores, Mozilla ha considerado mitigaciones basadas en IBPB (Indirect Branch Predictor Barrier), pero la prioridad es completar y desplegar la aislamiento de sitios (site isolation).
Comprobación del estado de las mitigaciones
Los administradores de sistemas Linux pueden comprobar el estado actual de protección frente a Spectre-v2, incluido el estado de IBPB, a través de la interfaz sysfs, tal como se describe en la documentación del kernel de Linux sobre Spectre:
/sys/devices/system/cpu/vulnerabilities/spectre_v2
Este archivo muestra los mecanismos de mitigación activos y permite evaluar si el sistema está protegido frente a ataques basados en la predicción de saltos indirectos.
Priorización de los parches
Al planificar las actualizaciones, deben tenerse en cuenta las diferencias entre las dos CVE. CVE-2026-64508 tiene una puntuación de 7.0 (CVSS v3.1) confirmada por el proveedor y una ruta de actualización concreta para Oracle Linux 9/10. Para CVE-2026-64507, en el momento del análisis no se habían establecido una valoración de gravedad verificada ni el rango de versiones afectadas. Esto no significa que la segunda vulnerabilidad sea menos peligrosa, pero la priorización del parcheado de CVE-2026-64508 está justificada por una base de información más completa.
BTR es otra confirmación de que la clase de vulnerabilidades Spectre sigue generando nuevas variantes de ataque que eluden las defensas ya desplegadas. Acción práctica: actualice el kernel de Linux a una versión que incluya las correcciones de CVE-2026-64507 y CVE-2026-64508, compruebe el estado de las mitigaciones de Spectre-v2 a través de sysfs y asegúrese de que la configuración de IBPB se ajusta a las recomendaciones de su distribución. Para entornos con GraalVM, actualice a una versión con aleatorización de la caché de código JIT.