Actualización 24/7/23 1:30 p. m. PT: AMD respondió con detalles clave y publicó un aviso de seguridad con las fechas previstas para los nuevos firmwares, muchos de los cuales no llegan hasta finales de año. Hemos agregado esa información al artículo original a continuación.
Artículo original publicado el 24/07/23 a las 8:45 a. m. (hora del Pacífico):
Tavis Ormandy, investigador de Google Information Security, publicó hoy sobre una nueva vulnerabilidad que encontró de forma independiente en los procesadores Zen 2 de AMD. La vulnerabilidad ‘Zenbleed’ abarca toda la pila de productos Zen 2, incluidos los procesadores de centro de datos EPYC de AMD y las CPU Ryzen 3000/4000/5000, lo que permite el robo de información protegida de la CPU, como claves de cifrado e inicios de sesión de usuario. El ataque no requiere acceso físico a la computadora o servidor e incluso puede ejecutarse a través de javascript en una página web.
AMD no tenía un aviso listo al momento de la publicación, pero la compañía agregó el Boletín AMD-SB-7008 varias horas después. AMD tiene parches listos para sus procesadores EPYC 7002 ‘Rome’ ahora, pero no parcheará sus Zen 2 Ryzen 3000, 4000 y algunos chips de la serie 5000 hasta noviembre y diciembre de este año. Los procesadores de AMD utilizados para alimentar la PS5, Xbox Series X y S, y Steam Deck también funcionan con chips Zen 2, pero no está claro si se ven afectados. Estamos siguiendo para más detalles. Hemos agregado detalles más abajo sobre los cronogramas de mitigación.
AMD no ha proporcionado detalles específicos de ningún impacto en el rendimiento, pero emitió la siguiente declaración para Hardware de Tom: “Cualquier impacto en el rendimiento variará según la carga de trabajo y la configuración del sistema. AMD no tiene conocimiento de ninguna explotación conocida de la vulnerabilidad descrita fuera del entorno de investigación”.
La declaración de AMD implica que los parches tendrán cierto impacto en el rendimiento, pero tendremos que realizar pruebas independientes cuando lleguen los parches para los productos Ryzen de consumo. Mientras tanto, le hemos pedido a AMD cualquier cifra aproximada que pueda compartir.
La vulnerabilidad de Zenbleed está archivada como CVE-2023-20593 y permite la exfiltración (robo) de datos a una velocidad de 30 kb por núcleo, por segundo, lo que proporciona un rendimiento adecuado para robar información confidencial que fluye a través del procesador. Este ataque funciona en todo el software que se ejecuta en el procesador, incluidas las máquinas virtuales, los entornos limitados, los contenedores y los procesos. La capacidad de este ataque para leer datos en máquinas virtuales es particularmente amenazante para los proveedores de servicios en la nube y para aquellos que usan instancias en la nube.
El ataque se puede lograr a través de la ejecución de código arbitrario sin privilegios. Ormandy ha publicado un repositorio de investigación de seguridad y un código para el exploit. El ataque funciona mediante la manipulación de los archivos de registro para forzar un comando imprevisto, como se describe a continuación:
«El error funciona así, en primer lugar, debe activar algo llamado XMM Register Merge Optimization2, seguido de un cambio de nombre de registro y un vzeroupper mal pronosticado. Todo esto tiene que suceder dentro de una ventana precisa para que funcione.
Ahora sabemos que las operaciones básicas como strlen, memcpy y strcmp usarán los registros vectoriales, ¡así que podemos espiar efectivamente esas operaciones que ocurren en cualquier parte del sistema! No importa si están ocurriendo en otras máquinas virtuales, sandboxes, contenedores, procesos, ¡lo que sea!
Esto funciona porque el archivo de registro es compartido por todo en el mismo núcleo físico. De hecho, dos hiperprocesos incluso comparten el mismo archivo de registro físico», dice Ormandy.
AMD describe el exploit de manera mucho más simple, diciendo: «Bajo circunstancias microarquitectónicas específicas, es posible que un registro en las CPU «Zen 2″ no se escriba en 0 correctamente. Esto puede causar que los datos de otro proceso y/o subproceso se almacenen en el registro YMM, lo que puede permitir que un atacante acceda potencialmente a información confidencial».
Ormandy dice que el error se puede reparar a través de un enfoque de software para múltiples sistemas operativos (por ejemplo, Windows: «puede configurar el bit de pollo DE_CFG[9]»), pero esto podría resultar en una penalización de rendimiento. Ormandy dice que es muy recomendable obtener la actualización del microcódigo, pero su publicación también tiene ejemplos de mitigaciones de software para otros sistemas operativos.
Aquí hay una lista de los procesadores afectados y el cronograma para el lanzamiento de las versiones de AGESA a los OEM:
Procesador | Firmware Agesa | Disponibilidad para OEM | microcódigo |
Procesadores AMD EPYC Rome de segunda generación | RomaPI 1.0.0.H | Ahora | 0x0830107A |
Serie Ryzen 3000 “Matisse” | ComboAM4v2PI_1.2.0.C | ComboAM4PI_1.0.0.C | Objetivo diciembre de 2023 para ambos | ? |
Serie Ryzen 4000 «Renoir» AM4 | ComboAM4v2PI_1.2.0.C | Meta Dic 2023 | ? |
Threadripper 3000-Series «Caslle Peak» | CastlePeakPI-SP3r3 1.0.0.A | Objetivo oct. 2023 | ? |
Serie Threadripper PRO 3000WX «Pico del castillo» | CastlePeakWSPI-sWRX8 1.0.0.C | ChagallWSPI-sWRX8 1.0.0.7 | Objetivo noviembre de 2023 | Meta Dic 2023 | ? |
Móvil de la serie Ryzen 5000 «Lucienne» | CézannePI-FP6_1.0.1.0 | Meta Dic 2023 | ? |
Móvil de la serie Ryzen 4000 «Renoir» | RenoirPI-FP6_1.0.0.D | Objetivo noviembre de 2023 | ? |
Ryzen 7020 Serie «Mendocino» | MendocinoPI-FT6_1.0.0.6 | Meta Dic 2023 | ? |
- Procesadores de la serie AMD Ryzen 3000
- Procesadores de la serie AMD Ryzen PRO 3000
- Procesadores AMD Ryzen Threadripper serie 3000
- Procesadores AMD Ryzen serie 4000 con gráficos Radeon
- Procesadores de la serie AMD Ryzen PRO 4000
- Procesadores AMD Ryzen serie 5000 con gráficos Radeon
- Procesadores AMD Ryzen serie 7020 con gráficos Radeon
- Procesadores AMD EPYC “Roma”
AGESA de AMD es una base de código sobre la cual los OEM construyen revisiones de BIOS. Deberá actualizar a un BIOS con el código AGESA mencionado anteriormente, o más reciente, para parchear su sistema.
Ormandy dice que informó el problema a AMD el 15 de mayo de 2023, pero aún no está claro si se trató de una divulgación coordinada: AMD no parecía estar preparado para el anuncio. Ormandy también le da crédito a sus colegas; «No podría haberlo encontrado sin la ayuda de mis colegas, en particular Eduardo Vela Nava y Alexandra Sandulescu. También tuve la ayuda de Josh Eads para analizar el error».