近期,Apache ActiveMQ Classic 被披露存在一个长期潜伏的高危远程代码执行(RCE)漏洞,令人意外的是,该问题并非通过传统人工审计发现,而是由 Anthropic 的 Claude AI 模型在约 10 分钟内自动识别出来。
该漏洞编号为 CVE-2026-34197,本质属于输入校验不足引发的代码注入问题,影响组件为 ActiveMQ Classic 中的 Jolokia JMX-HTTP 桥接模块。该接口通过 8161 端口的 /api/jolokia/ 管理控制台对外暴露。
攻击流程中,攻击者在完成身份认证后,可调用代理 MBean 提供的 addNetworkConnector(String) 管理方法,并构造包含恶意参数 brokerConfig=xbean:http:// 的 VM 传输 URI。
当 ActiveMQ 处理该 URI 时,会通过 BrokerFactory.createBroker() 动态加载攻击者指定的 URL,从而创建一个嵌入式 Broker。随后,xbean: 协议会将该 URL 交由 Spring 的 ResourceXmlApplicationContext 解析,加载远程 XML 中定义的 bean。借助 MethodInvokingFactoryBean,最终可触发 Runtime.getRuntime().exec(),实现任意系统命令执行。
该问题的根本原因可追溯到对 CVE-2022-41678 的修复。当时,为了维持 Web 控制台功能,Apache 为 org.apache.activemq:* 范围内的所有 MBean 操作添加了全局 Jolokia 访问白名单。这一设计无意中扩大了攻击面,使包括 addNetworkConnector 在内的敏感操作能够通过 REST API 被调用。
尽管该漏洞通常需要认证访问,但在实际企业环境中,默认凭证(如 admin:admin)仍广泛存在,显著降低了攻击门槛。更严重的是,在 6.0.0 至 6.1.1 版本中,由于 CVE-2024-32114 的影响,/api/* 路径的认证机制被错误移除,使 Jolokia 接口完全暴露,攻击者无需凭证即可直接利用该漏洞实现 RCE。
ActiveMQ 历史上多次成为攻击目标,例如:
这两项漏洞均已被列入 CISA 的 KEV(已被利用漏洞)清单。
此次漏洞由 Horizon3.ai 团队在 AI 辅助代码审查过程中确认。研究人员通过提供简化提示与动态验证环境,使 Claude AI 在约 10 分钟内识别出涉及 Jolokia、JMX、网络连接器以及 VM 传输机制的完整攻击链。相比之下,人工分析可能需要数天甚至更长时间,体现了 AI 在漏洞挖掘中的效率优势。
建议企业采取以下措施进行检测与防护:
brokerConfig=xbean:http 的 vm:// URI 请求/api/jolokia/ 接口中涉及 addNetworkConnector 的 POST 请求
官方已在 ActiveMQ Classic 5.19.4 和 6.2.3 中修复该漏洞,修补措施为移除通过 Jolokia 注册 vm:// 类型连接器的能力。建议所有受影响版本的用户尽快升级,并排查默认账号凭证的使用情况。