
إثبات مفهوم يوضح ثغرات حقن الأوامر في برنامج تشغيل Perforce الخاص بـ Composer، مع متجهين للهجوم واختبار قائم على Docker.
[!CAUTION] يحتوي هذا المستودع على كود إثبات المفهوم لثغرات CVE-2026-40261 وCVE-2026-40176 في Composer.
[!CAUTION] الكود مخصص للأغراض التعليمية والاختبارية فقط.
[!CAUTION] لا تستخدم هذا الكود في بيئات الإنتاج أو ضد أنظمة دون الحصول على إذن مناسب.
[!CAUTION] تأكد دائمًا من حصولك على إذن قبل اختبار أي ثغرات أمنية.
يوضح هذا المستودع ثغرتين في Composer تتعلقان بحقن الأوامر عبر برنامج تشغيل VCS الخاص بـ Perforce.
هناك ثلاثة نواقل للهجوم:
تحتوي ملفات composer.json.vector1 وcomposer.json.vector2 على الحمولات لكل من الناقلين. تم تصميم كل حمولة لتنفيذ أمر يقوم بإنشاء ملف في دليل /tmp، مما يثبت نجاح حقن الأوامر.
لاختبار الثغرات، يمكنك اتباع الخطوات التالية. تأكد من تثبيت Docker على نظامك لتشغيل حاوية Composer.
composer.jsonعلى سبيل المثال، لاختبار الناقل 1، انسخ composer.json.vector1 إلى composer.json عن طريق تشغيل:
cp composer.json.vector1 composer.json

على سبيل المثال، باستخدام إصدار Composer 2.9.3 (الذي يعتبر ضعيفًا لكل من CVE-2026-40261 وCVE-2026-40176):
docker container run --rm --platform linux/amd64 -v ./:/app -it composer:2.9.3 bash

ls -l /tmp/
توقع ألا يكون الملف الذي تم إنشاؤه بواسطة حقن الأوامر (مثل pwned_via_url أو pwned_via_user) موجودًا.

composer install --prefer-dist

ls -l /tmp/
توقع أن يكون الملف الذي تم إنشاؤه بواسطة حقن الأوامر (مثل pwned_via_url أو pwned_via_user) موجودًا الآن، مما يشير إلى نجاح حقن الأوامر.
