首页 网络安全 正文
  • 本文约1573字,阅读需8分钟
  • 242
  • 0

Apache Kafka 暴露用户数据漏洞CVE-2024-31141

摘要

栋科技漏洞库关注到Apache Kafka近期披露Apache Kafka Clients automatic ConfigProvider文件读取漏洞,被追踪为CVE-2024-31141 。

Apache Kafka 由 Scala 写成,最初是由LinkedIn开发,并于2011年初开源,通过一种独一无二的设计为客户提供了一个消息系统的功能。

一、基本情况

Apache Kafka 起源于LinkedIn,后来于2011年成为开源Apache项目,然后于2012年成为First-class Apache项目,用Scala和Java编写的。

Apache Kafka 是一种高吞吐量的分布式发布订阅消息系统,作为分布式、分区的、多复本的日志提交服务,是快速,可扩展和设计分布。

Apache Kafka是一个开源消息系统项目,被广泛应用于关键数据操作,项目目标是为处理实时数据提供一个统一、高通量、低等待平台。

Apache Kafka 暴露用户数据漏洞CVE-2024-31141

栋科技漏洞库关注到Apache Kafka近期披露Apache Kafka Clients automatic ConfigProvider文件读取漏洞,被追踪为CVE-2024-31141 。

二、漏洞分析

CVE-2024-31141漏洞是Apache Kafka Clients automatic ConfigProvider 中的文件读取漏洞,CVSS3.1评分5.1,可能造成敏感信息泄漏。

漏洞允许攻击者在可以控制Apache Kafka Connect 客户端的情况下,构造恶意请求利用ConfigProviders读取系统上的文件及环境变量等。

漏洞源于Apache Kafka Clients处理配置数据的方式,Apache Kafka Connect 属于底层组件依赖,漏洞前提利用条件需要视具体应用环境。

Apache Kafka Clients 接受用于自定义行为配置数据,并包括ConfigProvider插件来操控这些配置,这一灵活机制无意为攻击者开了后门。

Apache Kafka提供了FileConfigProvider、DirectoryConfigProvider和EnvVarConfigProvider实现,包括从磁盘或环境变量读取数据的能力。

在Apache Kafka Clients配置可以由不受信任方指定的应用程序中,攻击者可以使用这些ConfigProviders读取任意的磁盘内容和环境变量。

这样的方式在某些环境中可能是不可取的,包括SaaS产品,这可能导致攻击者利用这一漏洞从REST API访问升级到文件系统或环境访问。

Apache Kafka 客户端中的不当权限管理的这一漏洞,影响版本主要包括Apache Kafka客户端从2.3.0到3.5.2版本、以及3.6.2和3.7.0版本。

Apache Kafka项目建议将Kafka-clients升级至3.8.0或更高版本,并设置JVM系统属“org.apache.kafka.automatic.config.providers=none”。

并建议Kafka Connect用户使用其worker配置中指定的ConfigProvider实现之一添加适当的“allowlist.pattern”和“allowed.paths ”以限制访问。

需要注意的是,对于Kafka客户端或Kafka Connect的用户,如果环境信任用户对磁盘和环境变量的访问权限,则不建议去设置系统属性。

另外要注意的是,对于Kafka poker、Kafka MirrorMaker 2.0、Kafka Streams和Kafka命令行工具的用户,官方也不建议设置该系统属性。

三、影响范围

Apache Kafka clients >=2.3.0~3.5.2版本、3.6.2和3.7.0

四、修复建议

Apache Kafka clients > =3.8.0

五、参考链接

https://lists.apache.org/thread/9whdzfr0zwdhr364604w5ssnzmg4v2lv

评论
更换验证码
友情链接