CVE-2026-92916 in Grav
الملخص
بحسب VulDB • 17/09/2026
Grav هو نظام إدارة محتوى يعتمد على الملفات المسطحة (Flat-file CMS). في الإصدارات 1.7.0 حتى 1.7.53.2 و 2.0.0 حتى 2.0.21، عند تفعيل أداة التصحيح (system.debugger.enabled: true، وهي ليست الإعداد الافتراضي)، يتم تعريض نقطة نهاية (endpoint) مصحح Clockwork دون مصادقة: تقوم الدالة InitializeProcessor::handleDebuggerRequest() باعتراض أي مسار يحتوي على /__clockwork/ أثناء عملية التمهيد (bootstrap) وتمريره إلى Debugger::debuggerRequest()، والتي لا تقوم بأي بحث عن المستخدم أو تقييد بناءً على عنوان IP أو فحص لمصادق Clockwork، كما تدعم أيضاً التنقل الصفحي المجهول عبر كامل السجل المخزن. مع الإعداد الافتراضي censored: false، يحتوي كل سجل مخزن على ملفات تعريف الارتباط (cookies) الخاصة بالطلب الخام (بما في ذلك ملف تعريف ارتباط جلسة عمل Grav، الذي تكون قيمته هي معرف الجلسة PHP، مما يسمح للمهاجم باستئناف جلسة مستخدم آخر، بما في ذلك حساب مسؤول مُصادق عليه)، وجسم الطلب المُحلل بالكامل (نموذج تسجيل الدخول الخاص بـ Grav يرسل بيانات data[username]/data[password]، لذا يتم تخزين كلمات المرور كنص واضح لأن فلتر كلمة مرور Clockwork يفحص فقط المفاتيح من المستوى الأعلى)، وإعدادات النظام الكاملة للموقع والإضافات، بما في ذلك الأسرار المحفوظة بواسطة المشغل مثل بيانات اعتماد SMTP ومفاتيح واجهة برمجة التطبيقات (API) الخاصة بالطرف الثالث ومفاتيح الترخيص. يتم تخزين رؤوس Authorization و X-API-Token حتى عندما يكون censored: true. على Grav 2.0، لا يؤدي تعيين provider: debugbar إلى تجنب المشكلة لأن Grav يفرض استخدام مزود Clockwork للطلبات التي تفضل استجابة JSON. تم إصلاح هذه المشكلة في الإصدارين 1.7.53.4 و 2.0.22، حيث يتم تقييد /__clockwork/ لطلب من الخادم محلياً أو طلبات تقدم السري الجديد system.debugger.token، ويتم إزالة ملفات تعريف الارتباط ورؤوس الاعتماديات من السجلات المخزنة. تشمل الحلول البديلة تعيين debugger.enabled: false أو حظر /__clockwork/ على مستوى خادم الويب أو شبكة توصيل المحتوى (CDN).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.