
مختبر محلي مُعرَّض للثغرات عمدًا، مع ورشة عمل موجّهة وتحديات CTF لممارسة ثغرة تنفيذ الأكواد عن بُعد عبر خيارات push في Git، وإلغاء التسلسل غير الآمن، وتحليل المفاتيح المكررة، وتجاوز الإعدادات ضد خادم Git يعمل داخل حاوية Docker.
مختبر تعلّم محلي ومختبر بحثي مستوحى من مفاهيم الثغرة الموثّقة علنًا وراء CVE-2026-3854. تستخدم كلتا التجربتين عمليات Git push مصادَق عليها حقيقية ضد ForgeDock، وهو خادم Git خيالي؛ ومختبر البحث.

[!CAUTION] هذا المشروع معرّض للثغرات عن قصد. شغّله محليًا فقط. لا تعرّض منافذه لشبكة عامة أو مشتركة. لا تستخدمه أبدًا في بيئة إنتاج.
[!NOTE] تُنشر هذا المستودع كمرجع تعليمي للقراءة فقط. لا يقبل المشكلات العامة أو طلبات السحب أو طلبات الميزات أو طلبات الدعم. أبلغ عن حالات فشل حدود الأمان غير المقصودة بشكل خاص كما هو موضح في SECURITY.md.
ورشة موجّهة تعلّم خيارات push، والتسلسل غير الآمن، وتحليل المفاتيح المكررة، وتجاوز الإعدادات، وسلسلة التنفيذ المقيّدة. تجمع الدروس بين شروحات قصيرة وتجارب آمنة ضد المختبر قيد التشغيل.
تجربة بنمط CTF تتضمن ثلاث بطاقات تحدٍّ متتالية، وتلميحات اختيارية، وأعلامًا تُولّد من الواجهة الخلفية. لا تكشف الواجهة العادية عن المصدر أو التتبعات أو مخرجات المُسلسِل أو مخرجات بوابة التنفيذ أو جولة إرشادية.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
لا يلزم إعداد أي أعلام أو بيانات اعتماد. يُنشئ مُهيّئ يعمل مرة واحدة قيم إثبات مستقلة ومضغوطة قابلة للقراءة البشرية وبيانات اعتماد خدمة عشوائية في وحدة تخزين Docker خاصة عند أول تشغيل. يُعدّ make up أمرًا مكافئًا للراحة. لا حاجة إلى ملف .env اختياري إلا لتجاوز الإعدادات الافتراضية أو الاحتفاظ بقيم صريحة خارج Docker.
| الخدمة | الرابط المحلي |
|---|---|
| Flagship | http://localhost:8080 |
| ForgeDock | http://localhost:3000 |
| Web Terminal | http://localhost:7681 |
حساب المختبر القابل للتخلص منه هو:
Username: devuser
Password: devpass
بيانات الاعتماد العامة هذه موجودة فقط داخل المختبر المحلي القابل للتخلص منه. لا تُعد استخدامها في أي مكان آخر.
docker compose)تم التحقق من مرحلة جاهزية الإصدار على Apple Silicon (arm64). لا يُدّعى التحقق من أنظمة التشغيل الأخرى ومعماريات المعالجة الأخرى حتى يتم تسجيل فحوصات الاستنساخ النظيف الخاصة بها.
make up # build and start; private lab state is generated automatically
make logs # follow service logs
make reset # delete lab repositories/progress and rebuild
make down # stop the lab without deleting Docker volumes
make test # run unit and live integration tests
make reset يحذف أحجام Docker، بما في ذلك مستودعات المختبر وتقدم التشغيل وقيم الإثبات والبيانات الاعتمادية الداخلية. يُنشئ التشغيل التالي قيمًا خاصة جديدة تلقائيًا.
ترتبط المنافذ المنشورة بـ 127.0.0.1. لا يتم نشر Redis ولا منفّذ الـ hook ولا خدمات المعالجة الداخلية. لا يمتلك المنفّذ مقبس Docker ولا نقطة تحميل لنظام ملفات المضيف، ويُسقط قدرات Linux، ويستخدم نظام ملفات للقراءة فقط، ولا يقبل أي أمر shell أو بيئة يتحكم بها المستدعي، ولا يمكنه استدعاء سوى ملفات تنفيذية إثباتية دقيقة مملوكة للمختبر. تقيّد هذه الضوابط التمرين؛ لكنها لا تجعله آمنًا للكشف العلني.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
راجع نظرة عامة على النظام، ومعالجة خيارات الدفع، ونموذج التهديد، ودليل النشر المحلي.
ForgeDock هو إعادة بناء مبسطة ومقيّدة بأمان عن قصد لمفاهيم الثغرات الموثّقة علنًا وراء CVE-2026-3854. وهو لا يعيد إنتاج التنفيذ الاحتكاري الخاص بـ GitHub. تختلف أسماء الحقول وحدود الخدمات وسلوك التنفيذ عن التنفيذات الفعلية لـ GitHub وGitHub Enterprise Server.
أُضيف السلوك المعرّض للثغرة عن قصد في مرحلة لاحقة لهذا المختبر، وهو ليس ثغرة في Forgejo الأصلي. ForgeDock ليس GitHub، وهذا المشروع غير تابع لـ GitHub أو Forgejo أو Wiz أو الباحثين المذكورين، ولا يحظى بتأييدهم.
تصف هذه الإشارات المصادر والاعتماديات؛ وهي لا تعني التعاون أو الموافقة أو التأييد.
البرمجيات والمناهج التي أنشأتها Flagship مرخّصة بموجب GPL-3.0-or-later، باستثناء ما ينصّ ملف على ترخيص متوافق آخر. راجع LICENSE وNOTICE.md ومصدر Forgejo وTRADEMARKS.md. تظل تراخيص وإشعارات الأطراف الثالثة القائمة سارية المفعول.