La compañía de semiconductores AMD advierte un nuevo conjunto de vulnerabilidades que afectan una amplia gama de chipsets que podrían conducir a la divulgación de información.
Los fallas, llamados colectivamente ataques de programador transitorio (TSA), se manifiestan en forma de un canal lateral especulativo en sus CPU que aprovechan el tiempo de ejecución de instrucciones en condiciones de microarquitectura específicas.
«En algunos casos, un atacante puede usar esta información de tiempo para inferir datos de otros contextos, lo que resulta en una fuga de información», dijo AMD en un aviso.
La compañía dijo que los problemas se descubrieron como parte de un estudio publicado por los investigadores de Microsoft y ETH Zurich sobre la prueba de las CPU modernas contra ataques de ejecución especulativa como Meltdown y Proshadow mediante el aislamiento de pruebas de estrés entre dominios de seguridad como máquinas virtuales, kernel y procesos.
Después de la divulgación responsable en junio de 2024, a los problemas se les ha asignado a los identificadores CVE a continuación –
- CVE-2024-36350 (Puntuación CVSS: 5.6): una vulnerabilidad de ejecución transitoria en algunos procesadores AMD puede permitir que un atacante infiera datos de tiendas anteriores, lo que potencialmente resulta en la fuga de información privilegiada
- CVE-2024-36357 (Puntuación CVSS: 5.6) – Una vulnerabilidad de ejecución transitoria en algunos procesadores AMD puede permitir que un atacante infiera datos en el caché L1D, lo que potencialmente resulta en la fuga de información confidencial a través de los límites privilegiados
- CVE-2024-36348 (Puntuación CVSS: 3.8): una vulnerabilidad de ejecución transitoria en algunos procesadores AMD puede permitir que un proceso de usuario infiera los registros de control especulativamente, incluso si la función UMIP (3) está habilitada, lo que puede dar como resultado una fuga de información
- CVE-2024-36349 (Puntuación CVSS: 3.8): una vulnerabilidad de ejecución transitoria en algunos procesadores AMD puede permitir que un proceso de usuario infiera TSC_aux incluso cuando dicha lectura está deshabilitada, lo que puede dar como resultado una fuga de información
AMD ha descrito a TSA como una «nueva clase de canales laterales especulativos» que afecta a sus CPU, afirmando que ha liberado actualizaciones de microcódigos para procesadores impactados,
- Procesadores de 3ra generación EPYC AMD
- Procesadores EPYC de 4ta Gen AMD
- AMD Instinct MI300A
- Procesadores de escritorio de la serie AMD Ryzen 5000
- Procesadores de escritorio de la serie AMD Ryzen 5000 con gráficos Radeon
- Procesadores de escritorio de la serie AMD Ryzen 7000
- Procesadores de la serie AMD Ryzen 8000 con gráficos Radeon
- Procesadores AMD Ryzen Threadripper Pro 7000 WX-Series
- Procesadores de la serie AMD Ryzen 6000 con gráficos Radeon
- Procesadores de la serie AMD Ryzen 7035 con gráficos Radeon
- Procesadores de la serie AMD Ryzen 5000 con gráficos Radeon
- Procesadores de la serie AMD Ryzen 7000 con gráficos Radeon
- Procesadores de la serie AMD Ryzen 7040 con gráficos Radeon
- Procesadores móviles de la serie AMD Ryzen 8040 con gráficos Radeon
- Procesadores móviles de la serie AMD Ryzen 7000
- AMD EPYC incrustado 7003
- AMD EPYC incrustado 8004
- AMD EPYC incrustado 9004
- AMD EPYC incrustado 97×4
- AMD Ryzen incrustado 5000
- AMD Ryzen incrustado 7000
- AMD Ryzen incrustado V3000
La compañía también señaló que las instrucciones que leen datos de la memoria pueden experimentar lo que se conoce como «falsa finalización», que ocurre cuando el hardware de la CPU espera que las instrucciones de carga se completen rápidamente, pero existe una condición que evite que suceda,
En este caso, las operaciones dependientes pueden programarse para la ejecución antes de detectar la finalización falsa. Como la carga no se completó realmente, los datos asociados con esa carga se consideran inválidos. La carga se volverá a ejecutar más adelante para completarse con éxito, y cualquier operación dependiente volverá a examinar con los datos válidos cuando esté listo.
A diferencia de otro comportamiento especulativo, como el reenvío predictivo de la tienda, las cargas que experimentan una finalización falsa no dan como resultado un eventual descarga de tuberías. Si bien los datos no válidos asociados con una finalización falsa pueden enviarse a las operaciones dependientes, cargar y almacenar instrucciones que consumen estos datos no intentarán obtener datos ni actualizar ningún estado de caché o TLB. Como tal, el valor de estos datos no válidos no se puede inferir utilizando métodos de canal lateral transitorio estándar.
En los procesadores afectados por la TSA, los datos no válidos pueden afectar el momento de otras instrucciones que se ejecuta la CPU de una manera que un atacante puede detectable.
El fabricante de chips dijo que ha identificado dos variantes de TSA, TSA-L1 y TSA-SQ, en función de la fuente de los datos no válidos asociados con una finalización falsa: el caché de datos L1 o la cola de almacén de CPU.
En el peor de los casos, los ataques exitosos llevados a cabo utilizando fallas TSA-L1 o TSA-SQ podrían conducir a una fuga de información del núcleo del sistema operativo a una aplicación de usuario, desde un hipervisor hasta una máquina virtual invitada o entre dos aplicaciones de usuario.
Si bien TSA-L1 es causado por un error en la forma en que el caché L1 usa microtags para las búsquedas de datos de datos, las vulnerabilidades de TSA-SQ surgen cuando una instrucción de carga recupera erróneamente los datos de la cola de almacenamiento de la CPU cuando los datos necesarios aún no están disponibles. En ambos casos, un atacante podría inferir cualquier dato que esté presente dentro del caché L1 o utilizado por una tienda más antigua, incluso si se ejecutaron en un contexto diferente.
Dicho esto, la explotación de estos defectos requiere que un atacante obtenga acceso malicioso a una máquina y posee la capacidad de ejecutar código arbitrario. No es explotable a través de sitios web maliciosos.
«Las condiciones requeridas para explotar TSA son típicamente transitorias, ya que tanto la cola de microTAG como de la tienda se actualizará después de que la CPU detecte la finalización falsa», dijo AMD.
«En consecuencia, para exfiltrarse de manera confiable, un atacante generalmente debe poder invocar a la víctima muchas veces para crear repetidamente las condiciones para la finalización falsa. Esto es probable que sea posible cuando el atacante y la víctima tienen una ruta de comunicación existente, como entre una aplicación y el núcleo del sistema operativo».