Los investigadores de ESET han descubierto y analizado tres vulnerabilidades que afectan a varios modelos de computadoras portátiles de Lenovo. Las dos primeras vulnerabilidades—CVE-2021-3971, CVE-2021-3972 –– afectan a drivers de firmware para UEFI que fueron pensados originalmente para usarse solo durante el proceso de fabricación de las computadoras portátiles de consumo de Lenovo. Desafortunadamente, también se incluyeron por error en la producción de imágenes ISO para BIOS sin haberse desactivado correctamente. El atacante puede activar estos drivers de firmware afectados para deshabilitar directamente las protecciones en la memoria flash SPI o la función Secure Boot de UEFI (arranque seguro de UEFI) desde un proceso a nivel de usuario con privilegios durante el tiempo de ejecución del sistema operativo.
Esto significa que la explotación de estas vulnerabilidades permitiría a los atacantes desplegar y ejecutar con éxito en los dispositivos afectados implantes en flash SPI o ESP, como ocurrió con LoJax o con ESPecter, nuestro último hallazgo de malware para UEFI.
Las amenazas dirigidas a UEFI pueden ser extremadamente sigilosas y peligrosas. Se ejecutan temprano en el proceso de arranque, antes de transferir el control al sistema operativo, lo que significa que son capaces de eludir varias medidas de seguridad y formas de mitigación más altas que son las que podrían evitar que se ejecuten sus payloads.
Para comprender cómo descubrimos estas vulnerabilidades, considere los drivers de firmware afectados por la CVE‑2021-3971. Estos drivers llamaron inmediatamente nuestra atención por sus desafortunados (pero sorprendentemente honestos) nombres: SecureBackDoory SecureBackDoorPeim. Después de un análisis inicial, descubrimos otros drivers de Lenovo que presentaban algunas características similares a los drivers SecureBackDoor*: ChgBootDxeHook y ChgBootSmm. Resultó que su funcionalidad era aún más interesante y se podía abusar de ella para deshabilitar el UEFI Secure Boot (CVE-2021-3972).
Además, mientras investigábamos los drivers vulnerables que mencionamos anteriormente, descubrimos una tercera vulnerabilidad: un fallo de corrupción de memoria SMM dentro de la función handler SW SMI (CVE-2021-3970). Esta vulnerabilidad permite la lectura/escritura arbitraria desde/hacia SMRAM, lo que puede conducir a la ejecución de código malicioso con privilegios de SMM y, potencialmente, al despliegue de un implante flash SPI.
La lista de dispositivos afectados abarca a más de cien modelos de computadoras diferentes con millones de usuarios en todo el mundo.
El 11 de octubre de 2021 informamos a Lenovo acerca de todas las vulnerabilidades descubiertas. En total, la lista de dispositivos afectados comprende a más de cien modelos de computadoras diferentes con millones de usuarios en todo el mundo, desde modelos asequibles como Ideapad-3 hasta modelos más avanzados como Legion 5 Pro-16ACH6H o Yoga Slim 9-14ITL05. La lista completa de modelos afectados con soporte activo fue publicada en el comunicado de Lenovo.
Además de los modelos detallados en el comunicado, varios otros dispositivos que informamos a Lenovo también se ven afectados, pero no serán parcheados debido a que no recibirán más soporte —proceso conocido como End Of Development Support o EODS, por sus siglas en inglés. Esto incluye dispositivos en los que detectamos las vulnerabilidades reportadas por primera vez: Ideapad 330-15IGM e Ideapad 110-15IGR. La lista de los dispositivos que llegaron al final del ciclo de soporte y que hemos podido identificar está disponible en el repositorio de divulgación de vulnerabilidades de ESET.
Lenovo confirmó las vulnerabilidades el 17 de noviembre de 2021 y les asignó las siguientes CVE:
- CVE-2021-3970 LenovoVariableSmm – lectura/escritura arbitraria de SMM
- CVE-2021-3971 SecureBackDoor – deshabilita las protecciones flash SPI
- CVE-2021-3972 ChgBootDxeHook – deshabilita UEFI Secure Boot
Cronología de divulgación de vulnerabilidades:
- 2021-10-11: Vulnerabilidades reportadas a Lenovo
- 2021-10-12: Lenovo respondió y confirmó que estaba investigando los problemas
- 2021-11-17: Lenovo confirmó las vulnerabilidades y nos informó la fecha prevista para la publicación del comunicado: 8 de febrero de 2022
- 2022-01-20: Lenovo solicitó posponer la fecha de divulgación para el 18 de abril debido a problemas de desarrollo
- 2022-04-18: Lenovo publicó su advertencia de seguridad
- 2022-04-19: Publicación de la investigación de ESET con los detalles del hallazgo
En la versión en inglés de este artículo compartimos un completo análisis técnico de las vulnerabilidades descubiertas en equipos Lenovo y su alcance.
Nuestro descubrimiento, sumado al hallazgo de otras amenazas para UEFI en los últimos años (LoJax, MosaicRegressor, MoonBounce, ESPecter, FinSpy) demuestra que, en algunos casos, el despliegue de amenazas para UEFI puede no ser tan difícil como se esperaba, y la mayor cantidad de amenazas para UEFI descubiertas en los últimos años sugiere que los adversarios son conscientes de esto.
Aunque las vulnerabilidades no son la única opción que tienen los atacantes para desactivar o eludir las mitigaciones de seguridad del firmware, existen muchas vulnerabilidades de este tipo. Asimismo, debido a la gran cantidad de implementaciones de firmware diferentes y su complejidad, es probable que muchas más estén esperando a ser descubiertas.
Recomendamos a todos los propietarios de computadoras portátiles Lenovo que revisen la lista de dispositivos afectados y actualicen su firmware, idealmente siguiendo las instrucciones del fabricante.
Lea el análisis técnico completo de las vulnerabilidades descubiertas en portátiles Lenovo en la versión en inglés de este artículo.