Los mantenedores del software de automatización de integración continua/entrega e implementación continuas (CI/CD) de código abierto, Jenkins, han resuelto nueve fallas de seguridad, incluido un error crítico que, si se explota con éxito, podría resultar en la ejecución remota de código (RCE).
El problema, al que se le asignó el identificador CVE CVE-2024-23897se ha descrito como una vulnerabilidad de lectura de archivos arbitraria a través de la interfaz de línea de comando incorporada (CLI)
“Jenkins usa la biblioteca args4j para analizar argumentos y opciones de comandos en el controlador Jenkins cuando procesa comandos CLI”, afirman los mantenedores. dicho en un aviso del miércoles.
“Este analizador de comandos tiene una función que reemplaza un carácter @ seguido de una ruta de archivo en un argumento con el contenido del archivo (expandAtFiles). Esta función está habilitada de forma predeterminada y Jenkins 2.441 y anteriores, LTS 2.426.2 y anteriores no la deshabilitan. “.
Un actor de amenazas podría aprovechar esta peculiaridad para leer archivos arbitrarios en el sistema de archivos del controlador Jenkins utilizando la codificación de caracteres predeterminada del proceso del controlador Jenkins.
Mientras que los atacantes con permiso “General/Lectura” pueden leer archivos completos, aquellos que no lo tienen pueden leer las primeras tres líneas de los archivos dependiendo de los comandos CLI.
Además, la deficiencia podría utilizarse como arma para leer archivos binarios que contengan claves criptográficas, aunque con ciertas restricciones. Siempre que se puedan extraer los secretos binarios, Jenkins dice que podría abrir la puerta a varios ataques.
- Ejecución remota de código a través de URL raíz de recursos
- Ejecución remota de código mediante la cookie “Recordarme”
- Ejecución remota de código mediante ataques de secuencias de comandos entre sitios (XSS) almacenados a través de registros de compilación
- Ejecución remota de código mediante omisión de protección CSRF
- Descifrar secretos almacenados en Jenkins
- Eliminar cualquier elemento en Jenkins
- Descargar un volcado del montón de Java
“Si bien los archivos que contienen datos binarios se pueden leer, la función afectada intenta leerlos como cadenas utilizando la codificación de caracteres predeterminada del proceso del controlador”, dijo Jenkins.
“Es probable que esto provoque que algunos bytes no se lean correctamente y se reemplacen con un valor de marcador de posición. Los bytes que se pueden leer o no dependen de esta codificación de caracteres”.
Al investigador de seguridad Yaniv Nizry se le atribuye el mérito de descubrir e informar la falla, que se solucionó en Jenkins 2.442, LTS 2.426.3 al deshabilitar la función del analizador de comandos.
Como solución a corto plazo hasta que se pueda aplicar el parche, se recomienda desactivar el acceso a la CLI.
El desarrollo se produce casi un año después de que Jenkins abordara un par de vulnerabilidades de seguridad graves denominadas CorePlague (CVE-2023-27898 y CVE-2023-27905) que podrían provocar la ejecución de código en sistemas específicos.