CVE-2022-25167 Apache Flume JNDI 注入漏洞分析与复现
VSole2022-06-26 08:22:55
漏洞信息
Apache Flume 是一种分布式、可靠且可用的服务,用于高效收集、聚合和移动大量日志数据。近日监测到 Apache 发布安全的公告,修复了一个存在于 Apache Flume 中的代码执行漏洞。漏洞公告如下:
该漏洞是由于在 `JMSSource` 类中能够配置不安全的 `connectionFactoryName` ,导致攻击者可通过发送特制的 JNDI 查找,从而在目标系统上执行任意代码。
漏洞分析
首先进行补丁对比:
从补丁来看,在 `JMSSource#doConfigure` 函数中主要增加了对来自于 `JMSSourceConfiguration.CONNECTION_FACTORY` 的 `connectionFactoryName` 变量的检查。同时从官方给出的测试程序 `TestJMSSource.java` 可以看出 JNDI 注入的构造(新增 `testConfigureWithConnectionFactory` 函数):
回到 v1.9.0 版本的 `JMSSource#doConfigure` 函数:
在第 179 行获取 `connectionFactoryName` 字符串之后,一直往下走,第 265 行将其传入 `initialContext#lookup` 函数:
从而导致 JNDI 注入漏洞。
漏洞复现

VSole
网络安全专家