Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2025-30065 PoC — Apache Parquet Java: Arbitrary code execution in the parquet-avro module when reading an Avro schema from a Parquet file

Source
Associated Vulnerability
Title: Apache Parquet Java: Arbitrary code execution in the parquet-avro module when reading an Avro schema from a Parquet file metadata (CVE-2025-30065)
Description:Schema parsing in the parquet-avro module of Apache Parquet 1.15.0 and previous versions allows bad actors to execute arbitrary code Users are recommended to upgrade to version 1.15.1, which fixes the issue.
Description
​After reviewing the provided Proof of Concept (PoC) for CVE-2025-30065, it appears that the vulnerability exploits the deserialization mechanism in Apache Parquet's handling of Avro schemas, particularly through the use of the default property to instantiate arbitrary classes.
Readme
# CVE-2025-30065 Proof of Concept - Apache Parquet RCE

> ⚠️ FOR EDUCATIONAL AND AUTHORIZED SECURITY RESEARCH ONLY ⚠️  
> Do not use in unauthorized environments. This PoC is provided **as-is** and the author is not responsible for misuse.

## Description

This Proof of Concept demonstrates **CVE-2025-30065**, a Remote Code Execution vulnerability affecting **Apache Parquet** when using Avro schemas.  
It leverages insecure deserialization through the `default` field in Avro, allowing instantiation of arbitrary Java classes.

The PoC generates a malicious `.parquet` file containing a crafted schema and embedded warning header.  
Execution occurs if the vulnerable system deserializes this schema and has the target payload class in its classpath.

## Author

**@h3st4k3r** — VM, CTI & researcher  
https://github.com/h3st4k3r

## File

- `POC-CVE-2025-30065-ParquetExploitGenerator.java`: Main PoC source code. Generates a malicious Parquet file.

## Requirements

- Java 8+
- Maven (for dependencies)
- Apache Parquet `parquet-avro` dependency (vulnerable: ≤ 1.15.0)
- Hadoop Core (for `Path` and `Configuration` classes)

## Build & Run

```bash
# Get Parquet Avro dependency
mvn dependency:get -Dartifact=org.apache.parquet:parquet-avro:1.15.0

# Compile
javac -cp ~/.m2/repository/org/apache/parquet/*:~/.m2/repository/org/apache/hadoop/* ParquetExploitGenerator.java

# Run
java -cp .:~/.m2/repository/org/apache/parquet/*:~/.m2/repository/org/apache/hadoop/* ParquetExploitGenerator
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →