
Apache Struts JSON प्लगइन की denial-of-service भेद्यता (CVE-2026-73633) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो विशेष रूप से तैयार किए गए JSON ऐरे के माध्यम से CPU और मेमोरी की समाप्ति (exhaustion) को प्रदर्शित करता है।
सर्वर साइड पर सक्षम JSON body प्लगइन से उत्पन्न JSON फिलिंग ("JSON फिलिंग" Struts 2 में JSON प्लगइन द्वारा प्रदान की जाने वाली एक मुख्य विशेषता है, जिसे सरलता से एक स्वचालित डेटा रूपांतरण तंत्र के रूप में समझा जा सकता है।)
JSON फिलिंग फ़ंक्शन का पार्सर JSON ऐरे को संसाधित करते समय अनुरोध बॉडी की सभी JSON सामग्री को एक बार में मेमोरी में पढ़ लेता है (आइटम-दर-आइटम लोडिंग)
खपत (और cpu खपत) पैदा करती है
मैंने Struts एप्लिकेशन को तैनात करने के लिए wsl2 और tomcat का उपयोग किया और एक लॉगिन पेज बनाया, उपयोगकर्ता नाम admin, पासवर्ड 123456
वास्तविक परीक्षण में, कंप्यूटर पर सबसे स्पष्ट वृद्धि cpu उपयोग में देखी गई, उसके बाद मेमोरी में, और अनुरोध समाप्त होने के बाद (tcp कनेक्शन बंद होने के बाद), केवल cpu उपयोग जारी होता है, मेमोरी सक्रिय रूप से जारी नहीं होती है
(डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ परीक्षण समय 3 मिनट, होस्ट मशीन का cpu उपयोग 7 से बढ़कर 32 हो गया, मेमोरी 9.8g से बढ़कर 11g हो गई) क्रैश पैदा करने से बहुत दूर
केवल कंटेनर के सर्वर संसाधनों में तनाव पैदा हुआ, एक निश्चित मेमोरी उपयोग मान तक बढ़ने के बाद आगे नहीं बढ़ेगा, यह निश्चित मान फिलिंग मान (--size) के समानुपाती है