
إثبات المفهوم لـ CVE-2026-65761 - حقن SQL بدون مصادقة في EasyStore Pro عبر `filter_sortby`
filter_sortbyيوفر هذا المستودع إثبات مفهوم تعليميًا (PoC) لـ CVE-2026-65761، وهي ثغرة حقن SQL غير مصادق عليها تؤثر على الإصدارات من 1.0.0 حتى 2.0.2 (شاملًا) من امتداد EasyStore الخاص بـ Joomla. يتأثر الإصدار Pro فقط من الامتداد، نظرًا لأن المعامل filter_sortby مقيد بالترخيص.
يُظهر إثبات المفهوم (poc.py) حقن SQL في معامل الطلب filter_sortby في مسار بحث المنتجات (option=com_easystore&view=products&task=search) عبر فحص قائم على الأخطاء.
هذا المشروع وحزم Docker مخصصة لاختبار الأمان المحلي والأغراض التعليمية فقط.
لا تشغّل هذا ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.
مسار الكود القابل للاستغلال يقع ضمن ميزة حصرية لإصدار Pro. ولجعل هذا المسار قابلاً للتدقيق في بيئة محلية قابلة لإعادة الإنتاج، يطبّق هذا المستودع ترقيعًا مؤقتًا (monkeypatch) داخل الحاوية بحيث يمكن اختبار مسار الفرز/التصفية المقيد بإصدار Pro.
هذا ليس أسلوبًا للالتفاف على الترخيص ويجب عدم استخدامه للوصول إلى الميزات المدفوعة في عمليات النشر الفعلية. الغرض الوحيد منه هو تمكين أبحاث الأمان الدفاعية والتحقق المنسق من الثغرات الأمنية في بيئة اختبار محلية معزولة.
.
├── backup.sql.gz
├── poc.py
├── vulnerable/
│ ├── docker-compose.yaml
│ └── setup.sh
└── patched/
├── docker-compose.yaml
└── setup.sh
poc.py: إثبات المفهوم (PoC) للاستغلال.vulnerable/docker-compose.yaml: بيئة المختبر القابلة للاستغلال على http://127.0.0.1:9999.patched/docker-compose.yaml: بيئة المختبر المُصححة على http://127.0.0.1:9999.backup.sql.gz: تفريغ إقلاع (bootstrap) يحتوي على مجموعة بيانات متجر EasyStore دنيا مطلوبة لإثبات المفهوم هذا (منتجان، فئة واحدة، إعدادات متجر أساسية).vulnerable/setup.sh و patched/setup.sh: استيراد backup.sql.gz إلى حاوية MariaDB قيد التشغيل.pip install requests
شغّل البيئة القابلة للاستغلال:
docker compose -f vulnerable/docker-compose.yaml up -d
ثم جهّز بيانات اختبار EasyStore المطلوبة:
cd vulnerable
./setup.sh
cd ..
شغّل إثبات المفهوم:
python3 poc.py
النتيجة المتوقعة للبيئة القابلة للاستغلال تشمل:
[!] Target is vulnerable to CVE-2026-65761!
أوقف بيئة المختبر القابلة للاستغلال أولًا (إذا كانت قيد التشغيل):
docker compose -f vulnerable/docker-compose.yaml down -v
شغّل البيئة المُصححة:
docker compose -f patched/docker-compose.yaml up -d
ثم جهّز نفس بيانات اختبار EasyStore المطلوبة:
cd patched
./setup.sh
cd ..
شغّل نفس إثبات المفهوم:
python3 poc.py
النتيجة المتوقعة للبيئة المُصححة هي:
[-] Target is not vulnerable to CVE-2026-65761
في poc.py، يكون عنوان الهدف الافتراضي هو http://localhost:9999.
عدّله إذا شغّلت بيئة المختبر على مضيف أو منفذ مختلف.