
يُظهر بأمان اجتياز المسار CVE-2026-16219 في Croogo CMS مع PoC مقتصر على الحلقة المحلية، وتحليل تقني، وإرشادات المعالجة، وعرض توضيحي مستقل للمدافعين والباحثين.
يُوثّق هذا المستودع ويُظهر بأمان الثغرة المتعلقة بتفويض المسار التي تم تتبعها تحت CVE-2026-16219 في نظام Croogo CMS. وهو موجّه للمدافعين والمشرفين والطلاب والباحثين الذين يختبرون أنظمة يملكونها أو مُصرّح لهم صراحةً بفحصها.
حدود الأمان: لا يقبل إثبات المفهوم HTTP المرفق إلا عنوان الحلقة المحلية الحرفي
127.0.0.1، ولا يكتب إلا علامة.txtمولّدة إلى الوجهة الثابتة غير الشبكية/tmp/croogo-cve-2026-16219/، ولا يتبع إعادة التوجيه، ويرفض التشغيل دون إقرار صريح بالمختبر. لا يحتوي على أي حمولة قابلة للتنفيذ ولا وضع هدف بعيد.
تاريخ اللقطة: 2026-07-20.
| الحقل | القيمة |
|---|---|
| المنتج | Croogo CMS، مدير الملفات الإدارية |
| الإصدارات المتأثرة وفق NVD | 4.0.0 حتى 4.0.7 |
| نقطة الضعف | CWE-22، اجتياز المسار / تقييد المسار غير السليم |
| CVSS v3.1 وفق CNA في NVD | 6.3 متوسط |
| الصلاحيات | حساب مصادق عليه مع صلاحية مدير الملفات |
| تفاعل المستخدم | لا شيء بعد المصادقة |
| الكشف العام | يوجد تقرير في المنبع ومعلومات استغلال عامة |
| الإصدار المُصحَّح | لم يُحدد في لقطة الاستشارة المُشار إليها |
يمكن أن تتغير الحالة الحالية. تحقق من المصادر الأولية في docs/references.md قبل اتخاذ قرارات إنتاجية.
يُهيئ Croogo جذراً ضيقاً قابلاً للتعديل مثل WWW_ROOT/assets. يستخدم المُساعِد المُتأثر FileManager.editablePaths مع Configure::check() بدلاً من Configure::read(). تُجيب check() عما إذا كان المفتاح موجوداً؛ ولا تُرجع قائمة المسارات المُهيَّأة. ثم يُستخدم القيمة المنطقية الناتجة في فحص احتواء المسار، مما يُقوِّض حدود التفويض المُقصودة.
تعتمد عمليات الإنشاء والتعديل في مدير الملفات على هذا الفحص. وفقاً للشروط الموصوفة في التقرير المُنشَر، يمكن لمستخدم مُصادَق عليه في مدير الملفات الكتابة خارج الجذر القابل للتعديل عندما يستطيع حساب خدمة PHP الكتابة إلى الموقع المُحدَّد.
انظر docs/technical-analysis.md لتدفق البيانات وdocs/remediation.md لإرشادات التعزيز.
.
|-- demo/ عرض منطقي مستقل؛ لا يتطلب Croogo
|-- docs/ تحليل، إعداد مختبر، كشف، معالجة، مراجع
|-- patches/ تصحيح توضيحي للدفاع المتدرج
|-- poc/ إثبات مفهوم HTTP صارم للحلقة المحلية وعلامة نصية وأدوات تنظيف
|-- tests/ اختبارات درابزين وعرض توضيحي
|-- .github/workflows/validate.yml
|-- DISCLAIMER.md
|-- GITHUB_UPLOAD.md
|-- LICENSE
|-- Makefile
|-- SECURITY.md
`-- VERSION
يشرح النموذج المستقل الثغرة دون تشغيل نظام CMS مُعرَّض أو إرسال أي طلب شبكي:
php demo/path_authorization_demo.php
النتيجة المتوقعة:
Buggy modeled check for outside path: ALLOWED
Safe boundary check for outside path: DENIED
ينشئ العرض ملفات مؤقتة تحت دليل النظام المؤقت ويزيلها قبل الخروج.
اتبع docs/lab-setup.md. اربط التطبيق بـ 127.0.0.1 فقط وأنشئ دليل العلامات الثابت داخل نفس الجهاز الافتراضي أو الحاوية التي يعمل فيها Croogo:
sudo install -d -o www-data -g www-data -m 0750 \
/tmp/croogo-cve-2026-16219
استبدل www-data بحساب PHP-FPM أو خادم الويب في المختبر المُستهلَك.
احصل على رأس Cookie الكامل ورمز CSRF الخاص بـ CakePHP من طلب شرعي لمدير الملفات في مختبرك الخاص. لا تلتزم بها أبداً.
export BASE='http://127.0.0.1:8080'
export COOKIE='CAKEPHP=lab-session; csrfToken=lab-cookie-token'
export CSRF_TOKEN='lab-request-token'
export LAB_ACK='I_OWN_THIS_LAB'
POC_VALIDATE_ONLY=1 ./poc/croogo_local_poc.sh
./poc/croogo_local_poc.sh
يطبع السكربت اسم الملف المُولَّد وحالة HTTP. إن إعادة التوجيه أو استجابة النجاح ليست دليلاً بحد ذاتها؛ تحقق من العلامة من داخل جهاز Croogo الافتراضي أو الحاوية:
sudo ./poc/verify_marker.sh
إن وجود علامة خارج WWW_ROOT/assets يُظهر فشل التفويض. العلامة هي نص عادي وغير قابلة للتنفيذ عبر الويب.
sudo LAB_ACK='I_OWN_THIS_LAB' ./poc/cleanup_marker.sh
unset COOKIE CSRF_TOKEN LAB_ACK BASE
make test
تؤكد الاختبارات صحة بناء الجملة للسكربتات، وترفض مدخلات غير الحلقة المحلية أو التي تُسبب لبساً في عنوان URL، وتضمن عدم طباعة الأسرار أثناء التحقق، وتتحقق من النتيجة المتوقعة للنموذج المستقل.
Configure::read().التصحيح المساعد في patches/illustrative-hardening.patch والإرشادات في patches/create-file-hardening-example.md هي أدوات مراجعة وليست إصلاحات رسمية من البائع. اختبرها مقابل الفرع المنشور بالضبط.
استخدم هذا المستودع فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. لا تُكيِّف إثبات المفهوم للأهداف العامة، أو الحمولات القابلة للتنفيذ، أو البقاء، أو الوصول إلى بيانات الاعتماد، أو الإجراءات التدميرية. انظر SECURITY.md وDISCLAIMER.md.
MIT. انظر LICENSE.