1 puntos por GN⁺ 2025-05-14 | 1 comentarios | Compartir por WhatsApp
  • Se descubrió una nueva vulnerabilidad de seguridad en CPU de Intel, llamada Branch Privilege Injection, debido a una condición de carrera en el predictor de ramas
  • Este ataque es posible por actualizaciones asincrónicas y una sincronización insuficiente entre dominios de seguridad
  • Las mitigaciones de hardware existentes, como eIBRS e IBPB, quedan anuladas por la condición de carrera
  • Intel mitiga esta vulnerabilidad con una actualización de microcódigo, aunque con impacto en el rendimiento
  • La vulnerabilidad afecta a todas las CPU de Intel desde la 9.ª generación y ocurre sin importar el sistema operativo

Resumen del ataque Branch Privilege Injection

  • Branch Privilege Injection es una vulnerabilidad de seguridad que revive los ataques de inyección de objetivo de salto de la familia Spectre-BTI de una manera nueva
  • En las CPU de Intel, las defensas de hardware contra Spectre habían sido efectivas durante 6 años, pero esta investigación demuestra que pueden eludirse mediante una condición de carrera (race condition)
  • El predictor de ramas opera asincrónicamente con respecto al flujo de instrucciones, lo que en ciertas situaciones provoca actualizaciones retrasadas entre decenas y cientos de ciclos
  • Si ocurre una transición de privilegios mientras se está realizando una actualización del predictor de ramas —por ejemplo, usuario-kernel, invitado-hipervisor— o si se ejecuta IBPB, esa actualización puede asociarse erróneamente al nuevo modo de privilegios
  • A esto se le da el nombre de Branch Predictor Race Condition, y permite la filtración de información sensible de memoria

Demostración del ataque e impacto

  • Con esta técnica de ataque, en Ubuntu 24.04 (con los parches más recientes y las mitigaciones predeterminadas aplicadas), la velocidad de filtración arbitraria de memoria alcanza 5.6KiB/s
  • Hay una demostración en video del ataque exitoso sobre una CPU Intel Raptor Lake (13.ª generación)

Mitigaciones afectadas

  • eIBRS: mecanismo de seguridad introducido en las CPU Intel desde la 9.ª generación (Coffee Lake Refresh), que separa la predicción de ramas indirectas por dominios de seguridad.
  • IBPB: como eIBRS solo bloquea ataques entre dominios de seguridad de hardware, IBPB invalida toda la predicción de ramas indirectas para cubrir segmentos de seguridad adicionales, como máquinas virtuales no confiables
  • Ambas son mitigaciones recomendadas como configuraciones de seguridad predeterminadas en los entornos designados

Análisis detallado de Branch Predictor Race Condition

  • Si se produce una condición de carrera en el predictor de ramas, se invalidan las garantías de seguridad de eIBRS e IBPB
  • Cuando ocurre una transición de privilegios durante la ejecución de instrucciones, una actualización del predictor de ramas que estaba en curso queda atribuida erróneamente al nuevo dominio de seguridad
  • Incluso si se ejecuta IBPB, una actualización de predicción en curso no se limpia y permanece en el predictor, lo que genera un problema de seguridad

Mitigaciones para Branch Predictor Race Condition

  • Intel desarrolló una actualización de microcódigo para los procesadores vulnerables, y se confirmó experimentalmente que bloquea el ataque en Alder Lake
  • Al aplicar esta mitigación, se observa en Alder Lake una caída de rendimiento de hasta 2.7%
  • Como alternativa, también se evaluaron estrategias de mitigación por software, con una sobrecarga de rendimiento medida entre 1.6% (Coffee Lake Refresh) y 8.3% (Rocket Lake)
  • En el artículo se ofrece información adicional más detallada

Material adicional

  • El artículo principal de investigación sobre Branch Privilege Injection será presentado en USENIX Security 2025
  • También habrá una presentación centrada en la detección de la vulnerabilidad y el exploit en Black Hat USA 2025
  • El código fuente del ataque y de los experimentos está publicado en github

FAQ

1. ¿Mi computadora está afectada?

  • Todos los procesadores Intel desde la 9.ª generación (Coffee Lake Refresh) están afectados por Branch Privilege Injection
  • También se confirmó la anulación de IBPB en productos de hasta la 7.ª generación (Kaby Lake)

2. ¿También afectan a CPU que no sean Intel?

  • Según el análisis, este problema no se encontró en sistemas AMD ni ARM

3. ¿Solo Linux está afectado?

  • El PoC es para Linux, pero el problema de fondo existe en el hardware
  • Todos los sistemas operativos que funcionen sobre ese hardware son vulnerables

4. ¿Qué medidas se recomiendan?

  • Se recomienda instalar las actualizaciones más recientes del sistema operativo y del BIOS

1 comentarios

 
GN⁺ 2025-05-14
Opinión de Hacker News
  • En el texto publicado por Harvard, se usa una metáfora ingeniosa: para mala suerte de John, las ramas hicieron un pacto con Satanás y con la mecánica cuántica para lanzar un hechizo maligno sobre los procesadores de futuras generaciones, y ese hechizo terminó con nombres como "fuga de voltaje por escalado" o "aumento del calor desperdiciado"

  • Siempre es divertido leer a James Mickens, comenta alguien, y cita la broma de que el Mossad encargado de seguridad no se preocupa por cosas como HTTPS: si necesitan los datos, simplemente reemplazan tu teléfono con una réplica de uranio enviada por dron, y al final compran tus pertenencias en una venta de bienes y miran las fotos directamente

  • Alguien opina que la parte sobre las innumerables matrices da una pequeña esperanza, y dice que el hermano de John descubrió cómo enseñarles a esas matrices a hablar como personas

  • Se comparten enlaces al blog de los investigadores y al paper

  • Dejan el comentario de que cambiaron el enlace de arriba del comunicado de prensa universitario al post del blog de los investigadores

  • Sobre el impacto de la nueva vulnerabilidad, un investigador explica que puede leer repetidamente todo el contenido de memoria del CPU, incluso a una velocidad de 5,000 bytes por segundo, así que si el ataque tiene éxito, toda la información del CPU podría quedar expuesta

  • Expresan el deseo de que la URL del título se cambie al enlace del blog

  • Se resume cómo funciona el predictor de ramas

    • La actualización del estado del predictor puede ocurrir después de que termine la instrucción de rama
    • En el pipeline, el commit del resultado y el commit de la predicción son distintos
    • Las instrucciones de cambio de privilegios también avanzan en el pipeline sin esperar el estado de predicción, así que puede haber problemas si el nivel de privilegio no es consistente
    • La parte difícil es que en el pipeline puede no existir un único “nivel de privilegio actual”
  • Qué gusto ver al profesor Kaveh Razavi, que enseñaba un curso de seguridad de hardware en su universidad, y ese curso era realmente increíble

  • Hace unos años intentó averiguar más sobre ese curso y otra clase sobre malware, pero casi no había información pública; pregunta si existen grabaciones oficiales o apuntes del curso en línea

  • Preguntan si alguien conoce la relación entre el ataque Training Solo y esta vulnerabilidad

  • Les parece extraño que en la explicación sobre el parche de microcódigo del chipset solo se mencione Windows, y preguntan qué pasa con los usuarios de Linux

  • Explican que el kernel de Linux también soporta la carga de microcódigo desde hace mucho tiempo, pero Intel tiene que distribuir primero los archivos de microcódigo para que cada distribución pueda actualizarlos; en otras palabras, tiene que venir incluido en las actualizaciones del sistema

  • Añaden que Intel publica las actualizaciones de microcódigo para Linux en GitHub, así que cada distribución las toma de ahí y las redistribuye automáticamente; no están seguros, eso sí, de si esta vulnerabilidad en particular ya quedó parcheada

  • Comparten el enlace al aviso oficial de seguridad de Intel

  • Alguien se pregunta si existe una vulnerabilidad similar en CPUs de AMD y señala que mecanismos técnicos como la predicción de saltos están en la raíz de las vulnerabilidades de seguridad del CPU; le da curiosidad saber cómo AMD evita este tipo de fallas

  • Como respuesta, comparten el resumen del blog de los investigadores: esta vulnerabilidad de Branch Privilege Injection no afecta a sistemas AMD ni ARM

  • También aclaran que eso no significa que AMD se libre por completo de problemas de este tipo; como con Spectre y Meltdown, el alcance varía según la vulnerabilidad, y aunque esta está limitada a Intel, AMD también ha estado expuesta a fallas de la misma familia, como Spectre

  • En una explicación algo más minuciosa, se enfatiza que la ejecución especulativa en sí no es la vulnerabilidad, sino un mecanismo esencial en los CPUs modernos; como el interior de estos chips es tan complejo que resulta muy difícil detectar fallas, es posible que AMD y ARM también tengan bugs similares. Se advierte además que la única forma de resolverlo por completo sería reconocer que en los sistemas modernos el aislamiento de código no puede garantizarse, algo potencialmente devastador para el modelo de negocio de algunas grandes empresas

  • Como posible mitigación para esta vulnerabilidad, sugieren guardar una instantánea del nivel de privilegio en el momento de actualizar la predicción de ramas y propagar ese valor junto con ella; creen que eso podría resolverlo de forma parecida a problemas vistos en software

  • Señalan con humor que sería más fácil prevenirlo si el predictor de saltos del CPU pudiera verificar de inmediato los límites del búfer y la información de privilegios del código, aunque eso requeriría agregar información importante a los punteros

  • Alguien opina que primero hay que entender mejor el alcance del problema, pero añade que los ataques de este tipo mediante ejecución especulativa requieren en realidad una preparación enorme y no sirven de mucho sin capacidad de ejecutar código directamente; no es posible filtrar información arbitraria desde un navegador con código JS arbitrario, y comenta que él desactiva todas las mitigaciones para ganar rendimiento

  • Recomiendan la arquitectura CHERI

  • Señalan que no basta con cambiar solo la estructura de los punteros y mencionan el antiguo enfoque de segmentación de x86 (80286), donde el hardware realmente asignaba información de límites a cada acceso a memoria; incluso esos sistemas dependían de que el software manejara correctamente la información de límites, y al final tenían la misma limitación

  • Preguntan si a estas alturas ya están aplicados los parches para esta vulnerabilidad —o el microcódigo relacionado— en todos los sistemas operativos principales

  • Responden que sí; la fecha de divulgación pública es hoy (13 de mayo)