CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

  • A+
所属分类:安全漏洞

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

Apache的德鲁伊是一个开源的, 这是专为摄入大量的数据,以提供即时数据可视性,即席分析和查询与低延迟和高并发分布式数据存储库。企业通常使用Druid来分析实时或历史数据。它可以作为公共云,私有云或混合云的一部分进行部署。


最近在Apache Druid中报告了一个代码执行漏洞,该漏洞使未经身份验证的远程用户可以使用druid服务器进程的特权执行任意javascript代码。此漏洞已分配为CVE-2021-25646。可以在NVD上找到有关CVE-2021-25646和各种受影响版本的更多详细信息 。  


在此博客中,让我们仔细研究此漏洞的工作原理。 


漏洞详情

在我们的实验室中,我们在Ubuntu服务器上运行了Druid版本0.20.0。Druid可以从多个来源(例如Apache Kafka,Amazon S3和Hadoop等)中获取数据。它还允许从本地磁盘导入数据,并且用户可以在构建数据存储时插入自己的数据。 

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

德鲁伊数据提取选项

要输入 您自己的数据,请选择“ Source type ”作为“ inline ”, 然后简单地以JSON 格式输入一些示例数据, 如下所示: 

{“isRobot”:true,”channel”:”#itsme”,”timestamp”:”2021-2-22T14:12:24.050Z”,”flags”:”sample”,”isUnpatrolled”:false,”page”:”1″,”diffUrl”:”https://google.com”,”added”:1,”comment”:”I am sample data”,”commentLength”:16,”isNew”:true,”isMinor”:false,”delta”:31,”isAnonymous”:true,”user”:”Lsjbot”, “deltaBucket”:0,”deleted”:0,”namespace”:”Main”}

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

样本JSON数据

以下是API请求查找此步骤的方式:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

采样器API

对于其他选项,您可以参考此Druid快速入门指南,该 指南提供了入门的简单步骤。

数据提取完成后,Druid UI如下所示:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

数据加载

“ sampler ”  API还为经过身份验证的用户提供了执行用户定义的JavaScript代码以执行某些过滤和转换操作的能力。但是,此功能仅应在高信任度的环境中使用,并且默认情况下处于禁用状态。


 易受攻击的Apache Druid版本中存在一个 命令注入漏洞。即使禁用了此功能,远程未经身份验证的用户也可以使用执行的嵌入式JavaScript代码创建特制请求。结果,它可能导致命令注入和远程代码执行。 

之所以会发生这种情况,是因为易受攻击的Druid版本无法  使用空 键来验证异常的 JSON请求主体 。这将覆盖默认配置,并允许恶意用户执行任意代码。


而解决这个问题,德鲁伊开发商都提到了这个漏洞是一个的结果 存在错误在 杰克逊解串器,一个Java库,有助于将JSON字符串转换为Java对象。

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

修复CVE-2021-25646

远程执行代码

在此漏洞中,由于可以执行任何JavaScript代码,因此测试了以下情形: 

  1.  使用nc之类的工具在攻击者的计算机 上打开一个随机侦听器端口。 

  2. 在攻击者的计算机上,发送 特制的“ sampler ” API请求,其中包含包含恶意JavaScript代码的JSON数据,并使用Shell将其连接回上述 端口 。 

  3. 结果,将创建具有Druid用户特权级别的反向Shell。 


 在攻击者上打开端口:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

与nc打开端口

 使用curl在“ sampler ” API中 发送JSON正文:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

恶意JSON正文

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

通过curl发送

在侦听器端口上实现反向Shell功能:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

反壳

这是恶意API请求的样子:

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

恶意采样器API

补救和结论 

拥有IDP许可证的Juniper  Networks的 NGFW  SRX客户可以使用以下签名来防止此漏洞: 

HTTP:APACHE:DRUID-CMD-INJ

此签名于 2021年2月23日发布,导出 号为3358  ,是推荐模板的一部分。  


同时,受 供应商建议,受 CVE-2021-25646影响的用户  应将Apache Druid升级到最新的稳定版本 。

CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

本文始发于微信公众号(Ots安全):CVE-2021-25646:Apache Druid嵌入式Javascript远程执行代码

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: