基本信息
漏洞编号: 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应用
验证方法
- 检查项目的
pom.xml
文件,确认使用的org.apache.parquet:parquet-avro
版本。 - 如果版本低于1.15.1,则受漏洞影响。
修复方案
方案一:版本升级 (推荐)
升级到安全版本1.15.1
或更高版本:
<dependency>
<groupId>org.apache.parquet</groupId>
<artifactId>parquet-avro</artifactId>
<version>1.15.1</version>
</dependency>
方案二:临时修复
如果无法立即升级版本,可以通过以下方式暂时缓解风险:
- 限制对未知或不受信任数据源的Parquet文件解析。
- 在受限环境中运行有风险的代码,防止攻击面扩大。