Ubuntu Linux afectado por una falla “necesita reiniciar” de hace diez años que le da root

Se han descubierto cinco vulnerabilidades de escalada de privilegios locales (LPE) en la utilidad needrestart utilizada por Ubuntu Linux, introducida hace más de 10 años en la versión 21.04.

Los defectos fueron descubierto por Qualys y se rastrean como CVE-2024-48990, CVE-2024-48991, CVE-2024-48992, CVE-2024-10224 y CVE-2024-11003. Se introdujeron en la versión 0.8 de needrestart, lanzada en abril de 2014, y se solucionaron ayer, en la versión 3.8.

Necesito reiniciar es una utilidad comúnmente utilizada en Linux, incluido Ubuntu Server, para identificar servicios que requieren un reinicio después de las actualizaciones de paquetes, asegurando que estos servicios estén ejecutando las versiones más recientes de bibliotecas compartidas.

Resumen de fallas de LPE

Las cinco fallas descubiertas por Qualys permiten a los atacantes con acceso local a un sistema Linux vulnerable escalar sus privilegios a root sin interacción del usuario.

La información completa sobre las vulnerabilidades está disponible en un archivo de texto separadopero se puede encontrar un resumen a continuación:

  • CVE-2024-48990: Needrestart ejecuta el intérprete de Python con una variable de entorno PYTHONPATH extraída de los procesos en ejecución. Si un atacante local controla esta variable, puede ejecutar código arbitrario como root durante la inicialización de Python mediante la implantación de una biblioteca compartida maliciosa.
  • CVE-2024-48992: El intérprete Ruby utilizado por needrestart es vulnerable cuando procesa una variable de entorno RUBYLIB controlada por un atacante. Esto permite a los atacantes locales ejecutar código Ruby arbitrario como root inyectando bibliotecas maliciosas en el proceso.
  • CVE-2024-48991: Una condición de carrera en needrestart permite a un atacante local reemplazar el binario del intérprete de Python que se está validando con un ejecutable malicioso. Al programar cuidadosamente el reemplazo, pueden engañar a Needrestart para que ejecute su código como root.
  • CVE-2024-10224: El módulo ScanDeps de Perl, utilizado por needrestart, maneja incorrectamente los nombres de archivos proporcionados por el atacante. Un atacante puede crear nombres de archivos que se asemejen a comandos de shell (por ejemplo, comando|) para ejecutar comandos arbitrarios como root cuando se abre el archivo.
  • CVE-2024-11003: La dependencia de Needrestart del módulo ScanDeps de Perl lo expone a vulnerabilidades en el propio ScanDeps, donde el uso inseguro de las funciones eval() puede llevar a la ejecución de código arbitrario al procesar una entrada controlada por un atacante.

Es importante tener en cuenta que para explotar estas fallas, un atacante necesitaría obtener acceso local al sistema operativo a través de malware o una cuenta comprometida, lo que mitiga un poco el riesgo.

Sin embargo, los atacantes han explotado vulnerabilidades similares de elevación de privilegios en Linux en el pasado para obtener root, incluido Loony Tunables y otro que explota un error nf_tables. Por lo tanto, este nuevo defecto no debe ignorarse simplemente porque requiere acceso local.

Con el uso generalizado de needrestart y su vulnerabilidad durante mucho tiempo, las fallas anteriores podrían crear oportunidades para una escalada de privilegios en sistemas críticos.

Además de actualizar a la versión 3.8 o posterior, que incluye correcciones para todas las vulnerabilidades identificadas, se recomienda modificar el archivo needrestart.conf para desactivar la función de escaneo del shell, que evita la explotación de vulnerabilidades.

# Disable interpreter scanners.

 $nrconf{interpscan} = 0;

Esto debería evitar que Needrestart ejecute intérpretes con variables de entorno potencialmente controladas por un atacante.

Exit mobile version