Hackear un superordenador en cinco minutos: una vulnerabilidad de 20 años te convierte en un hacker al estilo «Matrix»

Hackear un superordenador en cinco minutos: una vulnerabilidad de 20 años te convierte en un hacker al estilo «Matrix»

Pruebas automatizadas tumban de golpe el software de grandes proyectos científicos

image

En un componente popular de los clústeres de supercomputación se encontró una vulnerabilidad que pasó desapercibida en el código durante aproximadamente veinte años. El fallo permite a un usuario local obtener la clave secreta del sistema de autenticación y después hacerse pasar por cualquier otro participante del clúster de cálculo. El problema afecta a casi todas las versiones del servicio Munge hasta la 0.5.17, incluida y ya recibió el identificador CVE-2026-25506 (puntuación CVSS: 7.7).

Se trata del entorno de cálculos de alto rendimiento. Así se denominan los grandes clústeres de servidores con Linux, que se emplean para cálculos complejos, desde el pronóstico del tiempo hasta investigaciones científicas. Estos clústeres están formados por numerosos nodos idénticos y funcionan como un único sistema. El planificador distribuye las tareas entre los nodos. Con mayor frecuencia se utiliza el sistema de gestión de trabajos Slurm. Para que los nodos se confíen entre sí y ejecuten procesos en nombre del usuario correspondiente, Slurm por defecto se apoya en el servicio de autenticación Munge.

Munge expide y verifica tokens especiales en los que están cifrados los identificadores de usuario y de grupo. Todos los nodos del clúster usan la misma clave secreta. Si alguien obtiene esa clave, puede crear tokens falsos y ejecutar trabajos en nombre de otra persona en cualquier nodo. En esencia, se trata de una elevación de privilegios dentro del clúster.

La vulnerabilidad se detectó durante una auditoría de seguridad de la infraestructura de cálculo de alto rendimiento en uno de los clientes. Los investigadores ejecutaron pruebas automáticas sobre el código de Munge mediante fuzzing y bastante rápido provocaron fallos. La causa resultó ser un desbordamiento de búfer al analizar uno de los campos de un mensaje de red. La longitud de la dirección se almacena en un campo de un solo byte, pero los datos se copian sin la comprobación adecuada del tamaño. Como resultado, los bytes sobrantes sobrescriben estructuras adyacentes en la memoria.

El error abre la puerta a la filtración del contenido de la memoria del proceso munged, que es el responsable de la autenticación. En un entorno de laboratorio, los investigadores montaron un ejemplo funcional del ataque. Este permite eludir la protección de aleatorización de direcciones de memoria, leer las estructuras internas y finalmente extraer la clave para calcular la firma de control de los tokens. Con esa clave se pueden falsificar tokens Munge y hacerse pasar por otros usuarios del clúster. En la práctica, esto permite ejecutar trabajos con los permisos de otra persona y acceder a datos.

El desarrollador de Munge recibió el informe en enero, preparó rápidamente una corrección y publicó una actualización. El parche se publicó el 10 de febrero. Se recomienda a los usuarios de clústeres que usan Slurm y Munge que actualicen cuanto antes el servicio de autenticación y verifiquen qué versiones usan los nodos. Incluso si el acceso al sistema lo tienen solo usuarios locales, un fallo de este tipo dentro del clúster puede conducir a la completa evasión del control de privilegios.