
مختبر إعادة إنتاج محلي لثغرة Apache Tomcat CVE-2025-24813، يوثّق شروط الاستغلال والتحقق بمساعدة الذكاء الاصطناعي من الثغرة.
مخصص فقط للتجارب المحلية المصرح بها وفهم التصحيحات والتحقق الدفاعي. لا ترسل طلبات إلى أهداف غير مصرح بها.
يسجل هذا المشروع عملية إعادة إنتاج CVE-2025-24813 على نسخة محلية من Apache Tomcat 9.0.98: استخدام partial PUT لكتابة ملف مؤقت، وفي ظل إعدادات تم فيها تفعيل استمرارية الجلسة من نوع الملفات مع شروط تصفية إلغاء التسلسل المتساهلة، التحقق من مسار تحميل ملف الجلسة وتنفيذ الحمولة.
.inject.session في دليل العمل، ثم تؤكد أن الوصول يثير تحميل الجلسة وتنفيذ الحمولة؛ لا يمكن الحكم على النجاح بالاعتماد على رمز حالة HTTP وحده.409 أو 500، لكن كتابة الملف والتحفيز اللاحق لا يزالان بحاجة إلى تقييم مرحلي بالاستناد إلى محتوى الملف وسجلات الخادم والآثار الجانبية الخاضعة للسيطرة.يسرد الإعلان الأمني الرسمي من Apache الشروط المسبقة لتفعيل CVE-2025-24813، ونطاق التأثير (Tomcat 9.0.0-M1 حتى 9.0.98) ومعلومات الإصلاح في 9.0.99: https://tomcat.apache.org/security-9
java -version)requests127.0.0.1:8080 المحليscripts/reproduce_local.py # سكربت التحقق المحلي، الهدف الافتراضي هو localhost:8080
evidence/ # لقطات شاشة التجربة (أُعيدت تسميتها حسب الخطوات)
python3 -m venv .venv
. .venv/bin/activate
python -m pip install requests
python scripts/reproduce_local.py
الهدف في السكربت ثابت على عنوان التجربة المحلي، ولا يتضمن منطق فحص عن بُعد. قبل التشغيل يجب التأكد في نسخة Tomcat المحلية من:
work/Catalina/localhost/ROOT.PUT /inject/session مع Content-Range، ومراقبة ما إذا كان الملف المؤقت قد أُنشئ؛work/Catalina/localhost/ROOT/.inject.session؛JSESSIONID=.inject، ومراقبة تحميل ملف الجلسة؛409/500 مباشرةً فشلاً أو نجاحاً لإعادة إنتاج الثغرة.يجب أن تستخدم ترويسات HTTP محرف CRLF حقيقياً (البايت 0d 0a)، ولا ترسل 0x0d0x0a كنص مرئي. في Python يجب استخدام b"\\r\\n" أو ترك requests يتولى بناء ترويسات الطلب.
قم بالترقية أولاً إلى إصدار Tomcat يتضمن الإصلاح، ثم أعد فحص أذونات الكتابة في Default Servlet، وسيناريوهات استخدام partial PUT، وتكوين عامل تصفية استمرارية Session. بعد الإصلاح، كرر نفس مجموعة خطوات التحقق المحلية، ومن المتوقع ألا يظل مسار كتابة الملفات المؤقتة أو مسار تحميل Session قائماً.
لا يوفر هذا المستودع وظائف فحص أو استمرارية أو استغلال جماعي موجهة لأهداف الإنترنت. جميع المحتويات مقصورة على بيئة التجربة المحلية التي أتحكم بها شخصياً وساحات التدريب المصرح بها صراحةً.