
POC de Jenkins de vulnerabilidad de lectura arbitraria de archivos a través de la CLI puede conducir a RCE
Jenkins tiene una interfaz de línea de comandos (CLI) integrada para acceder a Jenkins desde un script o entorno de shell.
Jenkins utiliza la biblioteca args4j para analizar argumentos y opciones de comandos en el controlador de Jenkins cuando procesa comandos CLI. Este analizador de comandos tiene una funcionalidad que reemplaza un carácter @ seguido de una ruta de archivo en un argumento con el contenido del archivo (expandAtFiles). Esta funcionalidad está habilitada por defecto y Jenkins 2.441 y anteriores, LTS 2.426.2 y anteriores no la deshabilitan.
Esto permite a los atacantes leer archivos arbitrarios en el sistema de archivos del controlador de Jenkins utilizando la codificación de caracteres predeterminada del proceso del controlador de Jenkins.
Los atacantes con permiso Overall/Read pueden leer archivos completos.
Los atacantes sin permiso Overall/Read pueden leer las primeras líneas de los archivos. El número de líneas que se pueden leer depende de los comandos CLI disponibles. Al momento de la publicación de este aviso, el equipo de seguridad de Jenkins ha encontrado formas de leer las primeras tres líneas de archivos en versiones recientes de Jenkins sin tener ningún complemento instalado, y no ha identificado ningún complemento que aumente este número de líneas.
Descripción del arreglo: Jenkins 2.442, LTS 2.426.3 deshabilita la funcionalidad del analizador de comandos que reemplaza un carácter @ seguido de una ruta de archivo en un argumento con el contenido del archivo para los comandos CLI.
En caso de problemas con este arreglo, deshabilite este cambio estableciendo la propiedad del sistema Java hudson.cli.CLICommand.allowAtSyntax a true. Hacer esto está fuertemente desaconsejado en cualquier red accesible por usuarios que no sean administradores de Jenkins.
Solución alternativa: Deshabilitar el acceso a la CLI se espera que prevenga la explotación por completo. Se recomienda encarecidamente a los administradores que no puedan actualizar inmediatamente a Jenkins 2.442, LTS 2.426.3. Aplicar esta solución alternativa no requiere reiniciar Jenkins.
Más información en: https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314
Comando a ejecutar: python CVE-2024-23897 Jenkins.py -l list.txt -f /etc/passwd
La respuesta de salida de VULN podría contener más que daemon o bin, agregue en la línea 28 si desea añadir más.