Vulnerabilidad crítica en Jenkins permite Ejecución Remota de Código (RCE)

Jenkins, una herramienta de integración continua de código abierto escrita en Java, se ha visto afectada por una vulnerabilidad identificada como CVE-2024-43044. Esta falla permite a atacantes remotos no autenticados ejecutar código arbitrario en servidores vulnerables, lo que podría resultar en la toma de control completa del sistema.

  • CVE-2024-43044 (CVSS N/A): Esta vulnerabilidad, clasificada como crítica, se encuentra en la característica de Jenkins que permite al controlador transmitir archivos JAR a sus agentes. Un atacante puede explotar esta funcionalidad para leer archivos arbitrarios del sistema de ficheros del controlador, lo que podría conducir a la exfiltración de datos sensibles, como credenciales, claves privadas y código fuente. Los investigadores de Conviso Labs han proporcionado un desglose detallado de cómo se puede explotar esta vulnerabilidad mediante una prueba de concepto (PoC).

Esta vulnerabilidad surge de una falla en el método ClassLoaderProxy#fetchJar, que no restringe las rutas de archivo que los agentes pueden solicitar al controlador. La vulnerabilidad permite a los agentes eludir el sistema de control de acceso Agente – Controlador, que está diseñado para evitar el acceso no autorizado.

Ruta de explotación

Lectura arbitraria de archivos: los atacantes pueden usar la vulnerabilidad para leer archivos confidenciales del controlador Jenkins.

Ejecución remota de código (RCE): al secuestrar un agente, los atacantes pueden aumentar los privilegios para ejecutar código en el controlador de Jenkins. Esto se puede lograr explotando la biblioteca Remoting para establecer conexiones no autorizadas y ejecutar código malicioso.

Productos y versiones afectadas:

  • Todas las versiones de Jenkins anteriores a 2.471.
  • Versiones de soporte a largo plazo (LTS) de Jenkins anteriores a 2.452.4 y 2.462.1.

Solución:

  • Actualizar Jenkins a la versión 2.471 y para Jenkins LTS las versiones 2.452.4 y 2.462.1.

Recomendaciones:

  • Actualizar lo antes posible a las versiones de Jenkins que solventan la vulnerabilidad mencionada.
  • Fortalecer los mecanismos de autenticación y autorización en los sistemas Jenkins para limitar el acceso a usuarios.

Referencias: