La empresa Eclypsium dos vulnerabilidades en el firmware del controlador BMC suministrado en los servidores Lenovo ThinkServer, que permiten a un usuario local sustituir el firmware o ejecutar código arbitrario en el chip BMC.
Un análisis adicional mostró que estos problemas también afectan al firmware de los controladores BMC utilizados en las plataformas de servidores Gigabyte Enterprise Servers, que también son usados en los servidores de empresas como Acer, AMAX, Bigtera, Ciara, Penguin Computing y sysGen. En los controladores BMC problemáticos se utilizaron firmwares vulnerables MergePoint EMS, desarrollados por el proveedor externo Avocent (actualmente una subsidiaria de Vertiv).
La primera vulnerabilidad es causada por la falta de verificación criptográfica de las actualizaciones de firmware cargadas (solo se utiliza la verificación de la suma de verificación CRC32, a pesar de que NIST recomienda utilizar firmas digitales), lo que permite a un atacante con acceso local al sistema sustituir el firmware BMC. Este problema, por ejemplo, puede ser utilizado para una profunda integración de rootkits que permanecen activos incluso después de reinstalar el sistema operativo y bloquean futuras actualizaciones del firmware (para eliminar el rootkit se requiere un programador para reescribir el SPI flash).
La segunda vulnerabilidad se encuentra en el código de actualización del firmware y permite la inserción de comandos propios que serán ejecutados en BMC con el nivel más alto de privilegios. Para realizar el ataque, es suficiente con cambiar el valor del parámetro RemoteFirmwareImageFilePath en el archivo de configuración bmcfwu.cfg, que define la ruta a la imagen del firmware que se va a actualizar. Durante la próxima actualización, que se puede iniciar con un comando en IPMI, este parámetro será procesado por el BMC y utilizado en la llamada popen() como parte de la cadena para /bin/sh. Dado que la cadena para formar el comando shell se crea utilizando la llamada snprintf() sin la limpieza adecuada de los caracteres especiales, los atacantes pueden inyectar su propio código para ser ejecutado. Para explotar la vulnerabilidad, se requieren derechos que permitan enviar un comando al controlador BMC a través de IPMI (si se tienen derechos de administrador en el servidor, se puede enviar un comando IPMI sin autenticación adicional).
Las empresas Gigabyte y Lenovo fueron notificadas sobre los problemas en julio de 2018 y lograron lanzar actualizaciones antes de la divulgación pública de la información. La empresa Lenovo lanzó actualizaciones de firmware el 15 de noviembre de 2018 para los servidores ThinkServer RD340, TD340, RD440, RD540 y RD640, pero solo solucionó la vulnerabilidad que permitía la inyección de comandos, ya que en el momento de la creación de la línea de servidores basados en MergePoint EMS en 2014, la verificación de firmware por firma digital aún no era ampliamente adoptada y no se especificó inicialmente.
El 8 de mayo de este año, la empresa Gigabyte lanzó actualizaciones de firmware para placas madres con el controlador ASPEED AST2500, pero al igual que Lenovo, solo solucionó la vulnerabilidad relacionada con la inyección de comandos. Las placas vulnerables basadas en ASPEED AST2400 aún no tienen actualizaciones. Gigabyte también anunció la transición al uso de firmware MegaRAC SP-X de AMI. Además, los nuevos firmware basados en MegaRAC SP-X se ofrecerán para sistemas que anteriormente se entregaron con firmware MergePoint EMS. Esta decisión se tomó tras el anuncio de Vertiv sobre el cese de soporte para la plataforma MergePoint EMS. Sin embargo, no se ha informado nada sobre la actualización de firmware en los servidores producidos por Acer, AMAX, Bigtera, Ciara, Penguin Computing y sysGen, que están basados en placas Gigabyte y equipados con firmware vulnerables de MergePoint EMS.
Recordemos que BMC es un controlador especializado que se instala en los servidores, el cual cuenta con su propio CPU, memoria, almacenamiento e interfaces para la consulta de sensores. Proporciona una interfaz de bajo nivel para el monitoreo y la gestión del hardware del servidor. A través de BMC, se puede monitorear el estado de los sensores, gestionar la alimentación, los firmwares y los discos, organizar el arranque remoto por la red, garantizar el funcionamiento de la consola de acceso remoto, etc., independientemente del sistema operativo que esté en ejecución en el servidor.
Fuente: opennet.ru
