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
網絡安全專家