vulnerabilities

Apache Parquet Avro格式反序列漏洞(CVE-2025-30065)

tom·Apr 07, 2025

基本信息

漏洞编号: CVE-2025-30065
危险等级: 高危
影响版本: parquet-avro < 1.15.1
受影响组件: org.apache.parquet:parquet-avro
验证状态: 已验证
修复状态: 官方已发布修复版本

漏洞详情

Apache Parquet Java是一个流行的开源工具,用于大规模数据处理,提供高效的存储和处理能力。其中的parquet-avro模块负责在Parquet格式和Avro格式之间进行数据转换。

在parquet-avro 1.15.0及之前的版本中,AvroConverters.java文件中的FieldStringableConverter方法未对传入的stringableClass对象进行严格校验,导致在将Parquet文件转换为Avro格式的过程中,攻击者可以通过精心构造的恶意Parquet文件实例化任意类并调用其构造方法,最终实现任意代码执行。

修复版本引入了checkSecurity函数,对stringableClass对象进行白名单校验,仅允许受信任包下的类通过,限制反序列化的恶意类加载

影响范围

影响版本

org.apache.parquet:parquet-avro (所有版本 < 1.15.1)

生态系统

  • Maven
  • 使用parquet-avro模块的Java应用

验证方法

  1. 检查项目的pom.xml文件,确认使用的org.apache.parquet:parquet-avro版本。
  2. 如果版本低于1.15.1,则受漏洞影响。

修复方案

方案一:版本升级 (推荐)

升级到安全版本1.15.1或更高版本:

<dependency>
  <groupId>org.apache.parquet</groupId>
  <artifactId>parquet-avro</artifactId>
  <version>1.15.1</version>
</dependency>

方案二:临时修复

如果无法立即升级版本,可以通过以下方式暂时缓解风险:

  • 限制对未知或不受信任数据源的Parquet文件解析。
  • 在受限环境中运行有风险的代码,防止攻击面扩大。