🔍 Contexte

Publié le 7 avril 2026 par Horizon3.ai, cet article présente la divulgation complète de CVE-2026-34197, une vulnérabilité d’exécution de code à distance (RCE) dans Apache ActiveMQ Classic, présente depuis 13 ans et corrigée dans les versions 5.19.4 et 6.2.3.

🐛 Description de la vulnérabilité

La vulnérabilité repose sur un enchaînement de mécanismes légitimes d’ActiveMQ :

  • Jolokia (pont HTTP-to-JMX) expose une API REST permettant d’invoquer des opérations sur les MBeans ActiveMQ
  • L’opération addNetworkConnector(String) sur le broker MBean accepte un URI de découverte
  • Le transport vm:// crée un broker à la volée si le nom référencé n’existe pas, en acceptant un paramètre brokerConfig pointant vers une URL distante
  • Le schéma xbean: délègue le chargement à Spring’s ResourceXmlApplicationContext, instanciant tous les beans définis — permettant l’exécution de commandes via MethodInvokingFactoryBean et Runtime.getRuntime().exec()

⚠️ Conditions d’exploitation

  • Authentifiée par défaut (credentials admin:admin très répandus)
  • Non authentifiée sur les versions 6.0.0 à 6.1.1 en raison de CVE-2024-32114, qui supprime les contraintes de sécurité sur le chemin /api/*, rendant Jolokia totalement accessible sans credentials

🔗 Lien avec des vulnérabilités antérieures

  • CVE-2022-41678 : RCE authentifiée via Jolokia et JDK MBeans (FlightRecorder) — le correctif avait introduit un allow global sur tous les MBeans ActiveMQ, créant la surface exploitée ici
  • CVE-2023-46604 : RCE non authentifiée via chargement de Spring XML distant (même type de sink)
  • CVE-2016-3088 : RCE authentifiée via la console web (sur la KEV CISA)

🎯 Secteurs impactés

ActiveMQ est largement déployé dans les secteurs : services financiers, santé, gouvernement, e-commerce.

🔎 Détection

Les logs du broker ActiveMQ contiennent des traces claires :

  • Références à des URIs vm:// avec brokerConfig=xbean:http dans les logs de network connector
  • Requêtes POST vers /api/jolokia/ contenant addNetworkConnector
  • Requêtes HTTP sortantes vers des hôtes inattendus depuis le processus ActiveMQ
  • Processus enfants inattendus spawned par le processus Java ActiveMQ

🗓️ Timeline

  • 22/03/26 : Rapport à Apache par Horizon3
  • 26/03/26 : Accusé de réception et assignation du CVE
  • 30/03/26 : Sortie d’ActiveMQ Classic 6.2.3
  • 06/04/26 : Advisory de sécurité Apache
  • 07/04/26 : Publication du CVE et de ce blog post

📄 Nature de l’article

Il s’agit d’un rapport de vulnérabilité technique avec divulgation complète (full disclosure), incluant preuve de concept, analyse du code source, indicateurs de détection et timeline de coordination responsable. La découverte a été assistée par l’IA Claude.

🧠 TTPs et IOCs détectés

TTP

  • T1190 — Exploit Public-Facing Application (Initial Access)
  • T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1071.001 — Application Layer Protocol: Web Protocols (Command and Control)
  • T1105 — Ingress Tool Transfer (Command and Control)
  • T1078.001 — Valid Accounts: Default Accounts (Defense Evasion)

IOC

  • CVEs : CVE-2026-34197NVD · CIRCL
  • CVEs : CVE-2024-32114NVD · CIRCL
  • CVEs : CVE-2022-41678NVD · CIRCL
  • CVEs : CVE-2023-46604NVD · CIRCL
  • CVEs : CVE-2016-3088NVD · CIRCL
  • Fichiers : payload.xml

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ horizon3.ai — source non référencée (0pts)
  • ✅ 10740 chars — texte complet (15pts)
  • ✅ 6 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 6 TTPs MITRE identifiées (15pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ 0/5 CVE(s) confirmée(s) (0pts)

🔗 Source originale : https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/

🖴 Archive : https://web.archive.org/web/20260416071306/https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/