Apache Avro Java SDK严重漏洞CVE-2024-47561
Apache Avro是一种数据序列化系统,设计用于支持高效的数据交换,可以提供丰富的数据结构和整套标准的编码和解码机制。
Apache Avro由Apache Hadoop项目开发,使用JSON格式定义数据结构(模式),提供紧凑的二进制格式来存储和传输数据。
一、基本情况
Apache Avro 是一个用于大规模数据处理的数据序列化框架,类似谷歌Protocol Buffers,具有高效的序列化和反序列化性能。
Apache Avro是Hadoop生态中的标准数据交换格式,通过不分语言数据交换,被广泛应用于多种大数据及实时数据处理应用。
在金融、物流、社交媒体特别是那些依赖数据交互企业系统中,Apache Avro 的应用非常广泛,因此出现漏洞后果会很严重。
来自 Datapicks 安全团队的研究员 Kostya Kortchinsky 在 Apache Avro Java 软件开发工具包(SDK)中发现了这个严重漏洞。
二、漏洞分析
Apache Avro 是 Apache Hadoop 项目的一部分开发的数据序列化框架,为结构化数据序列化提供一种紧凑、快速和高效方案。
Avro Java 软件开发工具包(SDK)是 Java 应用程序中使用 Apache Avro 的工具包,安全人员在其中发现一个严重安全漏洞。
Apache Avro 1.11.4之前版本Java SDK存在严重安全漏洞,允许在易受攻击实例执行任意代码,漏洞被标记CVE-2024-47561。
Apache Avro 1.11.4之前版本 Java SDK 的模式分析允许用户提供自己的 Avro 模式进行解析的应用程序,从而执行任意代码。
如果该安全漏洞被成功利用,将会导致攻击者在受影响的 Java 应用实例上实现远程代码执行(RCE),构成极大的安全风险。
根据Qualys公司的安全人员 Mayuresh Dani 的分析,在反序列化通过 Avro 图式接收的输入时,该漏洞可利用性将进一步增加。
虽然目前暂时没有发现针对性 Proof of Concept(PoC),但通过 ReflectData 和 SpecificData 指令处理包时都会触发此漏洞。
此外,该漏洞可通过与Kafka集成的方式进行利用,进一步扩大了其影响面,因此建议升级到Apache Avro 1.11.4或1.12.0版本。
Apache Avro 团队在公告中强烈建议受影响用户尽快升级,建议用户在解析图式前尽量清理数据,并避免处理来自用户的图式。
三、漏洞影响
Apache Avro < 1.11.4
四、修复建议
目前该漏洞已经修复,受影响用户需升级到以下版本:
Apache Avro >= 1.11.4或1.12.0
五、参考链接
https://nvd.nist.gov/vuln/detail/CVE-2024-47561