K3ysTr0K3R/CVE-2026-34197

GitHub: K3ysTr0K3R/CVE-2026-34197

该项目复现了 Apache ActiveMQ 经 Jolokia 桥接器的远程代码执行漏洞(CVE-2026-34197),展示了 Spring bean 提前实例化绕过配置验证从而实现 RCE 的利用链。

Stars: 2 | Forks: 0

# CVE-2026-34197 - Apache ActiveMQ Jolokia 远程代码执行 (RCE) CVE-2026-34197 是一个影响 Apache ActiveMQ Classic 的高危远程代码执行 (RCE) 漏洞。该问题存在于 Jolokia JMX-HTTP 桥接器中,该桥接器通过 `/api/jolokia/` endpoint 通过 HTTP 暴露管理操作。 默认的 Jolokia 访问策略允许经过身份验证的用户调用 ActiveMQ MBeans 上的管理操作。某些 broker 管理方法接受用户控制的 discovery URI。特制的 URI 可以导致 ActiveMQ 在 broker 配置验证发生之前加载远程的 Spring XML application context。 在初始化期间,Spring 会立即实例化 singleton beans。由于 bean 的初始化发生在 ActiveMQ 验证提供的配置之前,攻击者控制的 bean 定义可能会在 broker 的 JVM 内执行任意的 Java 代码。这最终可能导致 ActiveMQ 进程以运行该服务的权限被完全攻陷。 ## 技术细节 该漏洞影响多个组件之间的交互: - Apache ActiveMQ Classic - Jolokia JMX-HTTP 桥接器 - Java Management Extensions (JMX) - BrokerService 管理操作 - Spring Framework 的 `ResourceXmlApplicationContext` 通常,通过 Jolokia 暴露的管理操作旨在用于 broker 管理。但是,某些 broker 方法接受外部配置引用。 由于 Spring 会立即加载并实例化 bean,恶意的 bean 定义可能会在 ActiveMQ 验证提供的配置是否应该被接受之前执行。 这种执行顺序问题尽管存在后续的验证逻辑,但仍会造成代码执行原语。 ## 根本原因 该漏洞是由同时发生的两个安全设计问题引起的: 1. 通过 Jolokia 暴露的管理 JMX 操作接受攻击者控制的输入。 2. Spring 在 ActiveMQ 验证提供的配置之前会急切地实例化 singleton bean。 这些行为的结合使得在 application context 初始化期间(而不是在配置验证之后)就允许了执行操作。 ## 影响 成功利用此漏洞可能允许经过身份验证的攻击者: - 在 broker JVM 中执行任意代码 - 破坏消息 broker 的完整性 - 访问或操纵托管的消息基础设施 - 根据部署架构,可能会在环境中进一步进行内网渗透 ## 受影响版本 受影响的版本包括: | 产品 | 存在漏洞的版本 | |----------|--------------------| | Apache ActiveMQ Classic | 早于 5.19.4 | | Apache ActiveMQ 6.x | 6.0.0 至 6.2.2 | 用户应升级至: - 5.19.4 或更高版本 - 6.2.3 或更高版本 ## 缓解措施 Apache 建议: - 升级到已修复的版本。 - 限制对 Jolokia endpoint 的管理访问权限。 - 限制经过身份验证的管理员账户。 - 监控意外的 broker 配置更改。 - 审计对 ActiveMQ web 控制台的访问权限。
标签:Apache ActiveMQ, Go语言工具, JMX, Jolokia, JS文件枚举, RCE, Spring框架, 安全漏洞