
مختبر GitLab معزول قائم على Vagrant لاختبار دفاعي مُصرَّح به والتحقق من CVE-2026-85706، مع ملفات تعريف للنسخ المصابة والمُرقَّعة بالإضافة إلى تمارين للطلاب.
يبني هذا الدليل مختبر GitLab محليًا ومعزولًا لاختبار دفاعي مُصرَّح به لـ CVE-2026-85706. تؤثر الثغرة على واجهة برمجة تطبيقات repository-commits في GitLab CE/EE من حيث حصر المسار وفرض المصادقة. يستخدم ضيف Ubuntu كامل.
127.0.0.1:8443 على المضيف
افتراضيًا (قابل للتخصيص عبر LAB_HTTPS_PORT) ويستخدم
عنوان ضيف خاص بالمضيف فقط../scripts/teardown-vm.sh.curl و openssl و bashcd ~/gitlab-cve-lab
./scripts/setup-vm.sh
يقوم سكربت الإعداد بإنشاء جهاز افتراضي، وتثبيت GitLab CE مباشرة من مستودع
الحزم الرسمي، وينتظر نقطة نهاية الصحة. افتح المختبر على
https://127.0.0.1:8443 (سيحذّر المتصفح من الشهادة المحلية).
استخدم LAB_HTTPS_PORT و LAB_SSH_PORT عندما تكون القيم الافتراضية غير متاحة.
الملف الشخصي الافتراضي هو vulnerable، مثبّت على GitLab CE 19.3.1-ce.0، وهو
ضمن النطاق المتأثر المنشور لـ CVE-2026-85706. لبناء ملف التعريف المُرقَّع
للمقارنة، شغّل:
LAB_PROFILE=patched ./scripts/setup-vm.sh
يستخدم الملف الشخصي المُرقَّع GitLab CE 19.3.2-ce.0. إذا لم يعد مستودع
الحزم يوفّر ذلك الإصدار بالتحديد، فاضبط GITLAB_VERSION على إصدار مُرقَّع
مقدَّم من المورّد قبل تشغيل الإعداد.
./scripts/smoke-test-vm.sh
يتحقق اختبار الدخان من صحة الجهاز الافتراضي، وإمكانية الوصول إلى المنفذ المحلي فقط، وأن الطلب غير المُصادَق عليه إلى واجهة برمجة تطبيقات repository-commits لا يُعامَل كعملية قراءة ملفات مُصادَق عليها. وهو لا يحاول عن قصد استرجاع ملفات عشوائية.
لإجراء اختبار مُصادَق عليه مُتحكَّم به، أنشئ مشروعًا خاصًا قابلًا للتخلص منه في واجهة GitLab، وأضف إيداع اختبار، واستخدم فقط المسارات داخل ذلك المشروع. سجّل الطوابع الزمنية ورموز حالة HTTP، وليس محتويات الملفات الحساسة.
./scripts/teardown-vm.sh
يقوم هذا بإيقاف وتدمير الجهاز الافتراضي، والقرص المرتبط به، والشهادة المُولَّدة له.
هذا المشروع متاح بموجب رخصة MIT. متطلبات الاستخدام المسؤول للمختبر المعرّض للثغرة موثّقة في اتفاقية الترخيص وسياسة الأمان.