¿Usas needrestart en Ubuntu Linux? Entonces esto te interesa. Un grupo de fallas de seguridad, presentes desde hace más de 10 años, ha salido a la luz. Estas vulnerabilidades permiten a atacantes locales escalar privilegios y obtener acceso root en sistemas vulnerables, lo que podría comprometer servicios críticos. ¡Veamos qué está pasando!
Descubiertas por el equipo de Qualys, estas cinco vulnerabilidades (conocidas como CVE-2024-48990, CVE-2024-48991, CVE-2024-48992, CVE-2024-10224 y CVE-2024-11003) afectan a needrestart, una herramienta esencial utilizada en sistemas Linux para verificar servicios que requieren reinicio tras actualizaciones. El impacto es significativo, considerando su amplio uso en entornos empresariales.
¿Qué es needrestart y por qué es importante?
Needrestart es una utilidad predeterminada en Ubuntu Linux desde la versión 21.04. Su función principal es escanear servicios después de actualizaciones de paquetes para asegurarse de que ejecutan las versiones más recientes de bibliotecas compartidas.
Sin embargo, estas mismas funciones se han convertido en un punto débil que atacantes pueden explotar para obtener acceso root.
Las fallas explicadas
Estas son las cinco vulnerabilidades identificadas:
- CVE-2024-48990: Permite a los atacantes ejecutar código arbitrario como root al manipular la variable de entorno PYTHONPATH durante la inicialización de Python.
- CVE-2024-48992: Explota la variable RUBYLIB en el intérprete de Ruby, permitiendo inyecciones maliciosas.
- CVE-2024-48991: Una condición de carrera que permite reemplazar el binario de Python validado por un ejecutable malicioso.
- CVE-2024-10224: Utiliza nombres de archivo maliciosos en el módulo ScanDeps de Perl para ejecutar comandos arbitrarios.
- CVE-2024-11003: Aprovecha funciones inseguras en ScanDeps para ejecutar código arbitrario.
¿Qué puedes hacer para protegerte?
La solución más sencilla es actualizar needrestart a la versión 3.8 o posterior, que ya contiene parches para todas estas vulnerabilidades. Además, puedes desactivar la función de escaneo del intérprete en el archivo needrestart.conf
con el siguiente ajuste:
# Disable interpreter scanners.
$nrconf{interpscan} = 0;
Este cambio evitará que needrestart utilice intérpretes con variables de entorno controladas por atacantes.
¿Por qué esto es importante?
Aunque estas fallas requieren acceso local para ser explotadas, su impacto no debe subestimarse. Históricamente, vulnerabilidades similares han sido utilizadas en cadenas de ataque para comprometer sistemas críticos.
Además, needrestart ha sido ampliamente utilizado en servidores empresariales, lo que aumenta el riesgo potencial.
Comentarios!