
استغلال إثبات المفهوم لـ Apache Struts S2-072 (CVE-2026-73633)، يوضح استنزاف وحدة المعالجة المركزية (CPU) والذاكرة عن طريق إرسال طلبات JSON مصممة خصيصًا إلى إضافة Struts JSON.
تعبئة JSON الصادرة عن المكوّن الإضافي JSON body المُفعَّل على جانب الخادم ("تعبئة JSON" هي وظيفة أساسية يوفرها مكوّن JSON في Struts 2، ويمكن فهمها ببساطة على أنها آلية تحويل بيانات تلقائية.)
عند معالجة مصفوفات JSON، يقرأ محلّل وظيفة تعبئة JSON كل محتوى JSON الخاص بجسم الطلب إلى الذاكرة دفعة واحدة (التحميل عنصرًا بعنصر)
مما يسبب استهلاك الذاكرة (واستهلاك وحدة المعالجة المركزية CPU)
استخدمت WSL2 وTomcat لنشر تطبيق Struts، وأنشأت صفحة تسجيل دخول، اسم المستخدم admin وكلمة المرور 123456
في الاختبار الفعلي، كان أوضح ارتفاع على الكمبيوتر هو استخدام CPU، يليه الذاكرة، وبعد اكتمال معالجة الطلب، يتم تحرير استخدام CPU
بمجرد حدوث OOM في الذاكرة، يتم تشغيل جمع القمامة GC، ولن تمتلئ الذاكرة أبدًا بالكامل، وهي بعيدة كل البعد عن التسبب في أي تعطل
يتسبب فقط في ضغط موارد خادم الحاوية، وبعد الارتفاع إلى قيمة ثابتة لاستخدام الذاكرة (نقطة تشغيل OOM) لن يرتفع أكثر، بل ستقوم GC بإعادة تدويرها مرارًا ثم تشغلها مجددًا، ثم تعيد تدويرها…………
نمو CPU يتناسب طرديًا مع قيمة التعبئة (--size)
git clone https://github.com/CuteeCat/CVE-2026-73633.git
cd CVE-2026-73633
cd docker
docker-compose build
docker-compose up -d
cd ..
python poc.py --url http://127.0.0.1:8080/login.action --local