freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

CVE-2022-34916 Apache Flume 远程代码执行漏洞分析
2022-09-22 14:29:07
所属地 北京

项目介绍

Apache Flume 是一个分布式的,可靠的,并且可用于高效地收集,汇总和移动大量日志数据的软件。它具有基于流数据流的简单而灵活的体系结构。它具有可调的可靠性机制以及许多故障转移和恢复机制,并且具有健壮性和容错性。它使用一个简单的可扩展数据模型,该模型允许进行在线分析应用程序。

漏洞描述

在7月22日,Apache发布安全公告,修复了一个存在于Apache Flume中的远程代码执行漏洞,CVE编号为CVE-2022-34916。当攻击者控制目标 LDAP 服务器时,如果配置使用带有 JNDI LDAP 数据源 URI 的 JMS 源,Apache Flume 版本 1.4.0 到 1.10.0 很容易受到远程代码执行 (RCE) 攻击。

利用范围

1.4.0 <= Apache Flume <= 1.10.0

漏洞分析

环境搭建

从GitHub上下载1.10.0版本,导入IDEA。

项目jdk使用1.8,然后修改TestIntegrationActiveMQ 测试类中的DESTINATION_NAME,因为destinationName是由DESTINATION_NAME 定义;修改JNDI_PREFIX为ldap://

在JMSMessageConsumerTestBase.java中将destinationLocator = JMSDestinationLocator.CDI;修改为destinationLocator = JMSDestinationLocator.JNDI;

最后运行TestIntegrationActiveMQ 测试类即可。

漏洞原理

根据Apache Flume漏洞描述,可以确定问题是出现在了JMSMessageConsumer中。

查看DIff(https://github.com/apache/flume/commit/7fe9af49)记录发现,修复方式是在JMSMessageConsumer中的else分支下,在initialContext.lookup(destinationName)前新增了对destinationName的校验。

那么漏洞触发点已经很明确了,在没有增加校验前,只要进入JMSMessageConsumer中else分支,控制destinationName参数,即可实现JNDI注入。

代码分析

知道了漏洞原理后,分析一下代码。

首先在TestJMSMessageConsumer#testCreateDurableSubscription 初始化了 JMSMessageConsumer 并传入 destinationLocator

destinationLocator的定义是在JMSMessageConsumerTestBase.java中。

在搭建环境时,我们是将destinationLocator = JMSDestinationLocator.CDI;修改为了destinationLocator = JMSDestinationLocator.JNDI;

这样配置,是为了在JMSMessageConsumer中不满足if条件后,能够进入到else,到达漏洞触发点。

而在官方提供的测试类中,TestIntegrationActiveMQ 类存在 testQueueLocatedWithJndi,将作为source点传入参数。

修改DESTINATION_NAME为恶意JNDI地址,将JNDI_PREFIX修改为ldap://

通过参数的传入,经过如上分析的流程,到达else后,由于没有校验,直接触发initialContext.lookup,造成JNDI注入,从而执行恶意远程代码。

漏洞复现

修复建议

官方已发布安全版本,请尽快更新至安全版本,下载链接:https://flume.apache.org/download.html

参考材料

1.https://github.com/apache/flume/commit/7fe9af49

2.https://issues.apache.org/jira/browse/FLUME-3428

# 网络安全 # 数据安全 # 漏洞分析
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录