
Proof-of-Concept, das Command-Injection-Schwachstellen im Perforce-Treiber von Composer demonstriert, mit zwei Angriffsvektoren und Docker-basiertem Testen.
[!CAUTION] DIESES REPOSITORY ENTHÄLT PROOF-OF-CONCEPT-CODE FÜR SCHWACHSTELLEN CVE-2026-40261 UND CVE-2026-40176 IN COMPOSER.
[!CAUTION] DER CODE IST NUR FÜR BILDUNGS- UND TESTZWECKE GEDACHT.
[!CAUTION] VERWENDEN SIE DIESEN CODE NICHT IN PRODUKTIONSUMGEBUNGEN ODER GEGEN SYSTEME OHNE ENTSPRECHENDE AUTORISIERUNG.
[!CAUTION] STELLEN SIE IMMER SICHER, DASS SIE DIE ERLAUBNIS HABEN, BEVOR SIE SICHERHEITSSCHWACHSTELLEN TESTEN.
Dieses Repository demonstriert zwei Schwachstellen in Composer im Zusammenhang mit Befehlsinjektion über den Perforce-VCS-Treiber.
Es gibt drei Angriffsvektoren:
Die Dateien composer.json.vector1 und composer.json.vector2 enthalten die Payloads für jeden der beiden Vektoren. Jeder Payload ist so konzipiert, dass er einen Befehl ausführt, der eine Datei im Verzeichnis /tmp erstellt und so eine erfolgreiche Befehlsinjektion demonstriert.
Um die Schwachstellen zu testen, können Sie die folgenden Schritte ausführen. Stellen Sie sicher, dass Docker auf Ihrem System installiert ist, um den Composer-Container auszuführen.
composer.json verwenden.Um beispielsweise VEKTOR 1 zu testen, kopieren Sie composer.json.vector1 nach composer.json, indem Sie Folgendes ausführen:
cp composer.json.vector1 composer.json

Verwenden Sie beispielsweise die Composer-Version 2.9.3 (die sowohl für CVE-2026-40261 als auch für CVE-2026-40176 anfällig ist):
docker container run --rm --platform linux/amd64 -v ./:/app -it composer:2.9.3 bash

ls -l /tmp/
Erwarten Sie, dass die durch die Befehlsinjektion erstellte Datei (z. B. pwned_via_url oder pwned_via_user) nicht vorhanden ist.

composer install --prefer-dist

ls -l /tmp/
Erwarten Sie, dass die durch die Befehlsinjektion erstellte Datei (z. B. pwned_via_url oder pwned_via_user) jetzt vorhanden ist, was darauf hinweist, dass die Befehlsinjektion erfolgreich war.
