Se han revelado varias vulnerabilidades de seguridad de hace una década en el paquete needrestart instalado de forma predeterminada en Ubuntu Server (desde la versión 21.04) que podrían permitir a un atacante local obtener privilegios de root sin requerir la interacción del usuario.
La Unidad de Investigación de Amenazas (TRU) de Qualys, que identificó e informó las fallas a principios del mes pasado, dijo que son triviales de explotar, lo que requiere que los usuarios actúen rápidamente para aplicar las correcciones. Se cree que las vulnerabilidades existen desde la introducción del soporte de intérprete en needrestart 0.8, que se lanzó el 27 de abril de 2014.
“Estos exploits que necesitan reiniciarse permiten la escalada de privilegios locales (LPE), lo que significa que un atacante local puede obtener privilegios de root”, dijo Ubuntu en un aviso, señalando que se han solucionado en la versión 3.8. “Las vulnerabilidades afectan a Debian, Ubuntu y otras distribuciones de Linux”.
Needrestart es una utilidad que escanea un sistema para determinar los servicios que deben reiniciarse después de aplicar actualizaciones de la biblioteca compartida de una manera que evite un reinicio completo del sistema.
Los cinco defectos se enumeran a continuación:
- CVE-2024-48990 (Puntuación CVSS: 7,8): una vulnerabilidad que permite a atacantes locales ejecutar código arbitrario como root engañando a needrestart para que ejecute el intérprete de Python con una variable de entorno PYTHONPATH controlada por el atacante.
- CVE-2024-48991 (Puntuación CVSS: 7,8): una vulnerabilidad que permite a atacantes locales ejecutar código arbitrario como root al ganar una condición de carrera y engañar a needrestart para que ejecute su propio intérprete falso de Python.
- CVE-2024-48992 (Puntuación CVSS: 7,8): una vulnerabilidad que permite a atacantes locales ejecutar código arbitrario como root engañando a needrestart para que ejecute el intérprete Ruby con una variable de entorno RUBYLIB controlada por el atacante.
- CVE-2024-11003 (Puntuación CVSS: 7,8) y CVE-2024-10224 (Puntuación CVSS: 5.3): dos vulnerabilidades que permiten a un atacante local ejecutar comandos de shell arbitrarios como root aprovechando un problema en el paquete libmodule-scandeps-perl (antes de la versión 1.36).
La explotación exitosa de las deficiencias antes mencionadas podría permitir a un atacante local establecer variables de entorno especialmente diseñadas para PYTHONPATH o RUBYLIB que podrían resultar en la ejecución de código arbitrario que apunte al entorno del actor de la amenaza cuando se ejecuta needrestart.
“En CVE-2024-10224, (…) la entrada controlada por un atacante podría hacer que el módulo Module::ScanDeps Perl ejecute comandos de shell arbitrarios al abrir() una ‘tubería molesta’ (como al pasar ‘commands|’ como nombre de archivo) o pasando cadenas arbitrarias a eval()”, señaló Ubuntu.
“Por sí solo, esto no es suficiente para la escalada de privilegios locales. Sin embargo, en CVE-2024-11003, needrestart pasa la entrada controlada por el atacante (nombres de archivos) al Módulo::ScanDeps y activa CVE-2024-10224 con privilegios de root. La solución para CVE-2024-11003 elimina la dependencia de needrestart en Module::ScanDeps.”
Si bien se recomienda encarecidamente descargar los parches más recientes, Ubuntu dijo que los usuarios pueden desactivar los escáneres de intérpretes si es necesario reiniciar el archivo de configuración como una mitigación temporal y garantizar que los cambios se reviertan después de que se apliquen las actualizaciones.
“Estas vulnerabilidades en la utilidad needrestart permiten a los usuarios locales aumentar sus privilegios mediante la ejecución de código arbitrario durante la instalación o actualización de paquetes, donde needrestart a menudo se ejecuta como usuario root”, dijo Saeed Abbasi, gerente de producto de TRU en Qualys.
“Un atacante que aproveche estas vulnerabilidades podría obtener acceso raíz, comprometiendo la integridad y la seguridad del sistema”.