Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-53652-Jenkins-Git-Parameter-Analysis — CVE-2025-53652: Análisis de Git Parameter de Jenkins | Kitploit
Herramientas/GitHubGitHub/pl4tyz/cve-2025-53652-jenkins-git-parameter-analysis
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónDevSecOpsComando y ControlAprendizaje y Educación
GitHubpl4tyz/cve-2025-53652-jenkins-git-parameter-analysis

CVE-2025-53652-Jenkins-Git-Parameter-Analysis

CVE-2025-53652: Análisis de Git Parameter de Jenkins

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
23hace 1 añoAún no revisado

CVE-2025-53652: Vulnerabilidad de entrada no validada en el plugin Git Parameter de Jenkins.

Resumen

Esta vulnerabilidad surge porque la entrada controlada por el usuario procedente de los parámetros de build de Jenkins se inyecta de forma insegura en el comando de checkout de Git.

La entrada del usuario se proporciona como parámetro de build (p. ej., gitParameters), que puede contener comandos shell maliciosos.

Este parámetro se envuelve en un GitParameterValue (que extiende StringParameterValue), cuyo método buildEnvironment() lo expone como variable de entorno en el contexto del build sin saneamiento.

Durante el proceso de checkout del SCM, Jenkins carga las variables de entorno del build mediante build.getEnvironment().

El nombre de rama utilizado para el checkout (localBranchName) se obtiene de estas variables de entorno.

A continuación, el nombre de rama se pasa directamente al método CheckoutCommand.branch().

Finalmente, CheckoutCommand.execute() invoca el comando subyacente de la CLI de Git, que concatena el nombre de rama sin validación ni escape.

Esto permite la inyección de comandos, lo que posibilita que un atacante ejecute comandos shell arbitrarios en el host de build de Jenkins.

Análisis

  1. El método createValue que gestiona la entrada del usuario (p. ej., desde la carga útil JSON del POST HTTP), aquí es donde Jenkins acepta los valores de parámetros proporcionados por el usuario a través de la solicitud (por ejemplo, "selected": "master; rm -rf /"). La entrada se envuelve en un GitParameterValue, que extiende StringParameterValue, sin saneamiento ni validación de la entrada. Esto significa que los datos en bruto del usuario se aceptan como parámetro de build y se almacenan como instancia de ParameterValue. createValue.png

  2. La clase GitParameterValue que extiende StringParameterValue, GitParameterValue hereda de StringParameterValue pero no añade saneamiento. La cadena de constructores implica que la entrada del usuario queda ahora almacenada en un objeto que Jenkins utilizará más adelante para construir las variables de entorno. Esto propaga la entrada maliciosa a las variables de entorno del build de Jenkins. gitParameterValue.png"

  3. La clase StringParameterValue y su método buildEnvironment, este método es crucial — expone el parámetro como variables de entorno en el contexto del build al hacer stringParameter.png"

root@kitploit:~
env.put(name, value);
env.put(name.toUpperCase(Locale.ENGLISH), value);

Dado que el valor es una entrada de usuario sin saneamiento, permite que la entrada maliciosa entre en las variables de entorno de Jenkins, haciéndola accesible a procesos posteriores como los comandos de Git.

  1. El método _checkout del plugin GitSCM, este método llama a build.getEnvironment(listener), que recopila las variables de entorno, incluida la maliciosa establecida anteriormente. Utiliza estas variables para obtener el nombre de rama (mediante localBranchName), que luego se pasa al CheckoutCommand. La variable de entorno del parámetro malicioso fluye directamente al proceso de checkout. checkout.png

  2. La creación del CheckoutCommand y el establecimiento de la rama/ref con la entrada del usuario, CheckoutCommand.branch(localBranchName) utiliza la variable de entorno sin saneamiento. Dado que localBranchName proviene de variables de entorno controladas por el usuario, inyecta comandos arbitrarios en el checkout, esto prepara el terreno para la inyección de comandos cuando se llama a execute(). checkoutCommand.png

  3. ElCheckoutCommand.execute()` que ejecuta el comando de la CLI de Git, este es el paso final en el que la cadena de rama inyectada se pasa directamente a la CLI de Git del sistema sin escape ni saneamiento, como resultado, la carga útil maliciosa se ejecuta como comandos shell, lo que permite la ejecución remota de código en el host de Jenkins.

Conclusión

Este análisis revela cómo el plugin Git Parameter de Jenkins, combinado con el plugin Git SCM, puede dar lugar a una vulnerabilidad crítica de inyección de comandos. Al exponer de forma insegura los valores de parámetros controlados por el usuario como variables de entorno y pasarlos posteriormente directamente a los comandos de la CLI de Git sin el saneamiento adecuado, los atacantes pueden ejecutar comandos arbitrarios en el servidor de build de Jenkins.

Esta cadena de ruptura de confianza—desde la carga útil JSON maliciosa inicial hasta la ejecución final del shell—destaca la importancia de una validación estricta de la entrada y de un manejo seguro de los parámetros de build en los sistemas de integración continua.

Los usuarios y administradores deben asegurarse de ejecutar versiones actualizadas de Jenkins y de todos los plugins, y auditar cuidadosamente cualquier parámetro que influya en los comandos shell. Mitigaciones como el saneamiento de la entrada, la lista blanca de ramas permitidas o el aislamiento de los entornos de build pueden reducir el riesgo.

Comprender este flujo proporciona a los profesionales de la seguridad y a los desarrolladores la visión necesaria para detectar, prevenir y remediar vulnerabilidades de inyección similares en Jenkins o en plataformas CI/CD comparables.

Descargar herramienta
método
execute.png