치명적 CVE-2025-30065 2026년 4월 · 8분 읽기

CVE-2025-30065: Apache Parquet 스키마 역직렬화 RCE

Apache Parquet의 Java 라이브러리에 존재하는 최고 등급 심각도의 원격 코드 실행 취약점으로 인해, 공격자는 악의적으로 조작된 Parquet 파일을 읽는 모든 시스템에서 임의의 코드를 실행할 수 있습니다. CVSS 10.0. Parquet 형식을 사용하는 사실상 모든 빅데이터 파이프라인 — Spark, Flink, Hive, 클라우드 데이터 웨어하우스에 영향을 미칩니다.


10.0
치명적(MAX)
속성
CVE IDCVE-2025-30065
CVSS 벡터AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-502: 신뢰할 수 없는 데이터의 역직렬화
공개일2025년 4월 1일
익스플로잇 현황실제 악용 보고 없음(공개 PoC 존재)

CVE-2025-30065란?

Apache Parquet는 빅데이터 생태계에서 널리 사용되는 열 지향(columnar) 저장 형식입니다. parquet-avro 모듈은 1.15.0까지의 버전에서 스키마 파싱 코드에 역직렬화 취약점을 포함하고 있습니다. Java 애플리케이션이 조작된 Avro 스키마를 포함한 Parquet 파일을 읽으면, 파서는 공격자가 제어하는 클래스 참조를 역직렬화하여 읽는 애플리케이션의 컨텍스트에서 임의 코드 실행으로 이어집니다.

이는 데이터 파이프라인이 S3 버킷, 데이터 파트너, 사용자 업로드, ETL 통합 등 외부 소스로부터 정기적으로 Parquet 파일을 수집한다는 점에서 특히 위험합니다. 신뢰할 수 없는 Parquet 파일을 처리하는 모든 파이프라인이 취약합니다.

⚠ 공급망 공격 벡터

CVE-2025-30065는 강력한 공급망 공격 시나리오를 만들어냅니다: 데이터 파이프라인에 악성 Parquet 파일을 주입할 수 있는 공격자는(침해된 데이터 벤더, S3 버킷 잘못된 구성, 또는 중간자 공격을 통해) 데이터 처리 인프라 — 잠재적으로 권한이 부여된 클라우드 자격 증명으로 실행되는 AWS EMR, Databricks, Azure HDInsight, 또는 온프레미스 Hadoop 클러스터에서 코드 실행 권한을 획득합니다.

영향받는 시스템

구성 요소영향받는 버전수정된 버전
parquet-avro (Java)<= 1.15.01.15.1+
Apache Spark(parquet-avro 사용)영향받는 라이브러리를 사용하는 모든 경우라이브러리 업데이트
Apache Flink영향받는 라이브러리를 사용하는 모든 경우라이브러리 업데이트
Apache Hive영향받는 라이브러리를 사용하는 모든 경우라이브러리 업데이트
Amazon EMRparquet-avro <= 1.15.0을 사용하는 버전EMR 업그레이드 또는 JAR 재정의
Databricks Runtime영향받는 라이브러리를 사용하는 버전Databricks의 DBR 버전 패치

기술적 세부사항

이 취약점은 AvroSchemaConverter 클래스 내에 있으며, 이는 parquet-avro에 속합니다. Parquet 스키마를 Avro 스키마로 변환할 때, 코드는 임의의 클래스 이름을 포함할 수 있는 스키마 메타데이터를 처리합니다. 이러한 클래스 이름은 허용 목록(allowlist) 검증 없이 리플렉션 방식의 인스턴스화에 사용됩니다.


# 취약한 코드 경로의 개념적 표현
public Schema convert(MessageType parquetSchema) {
    // 스키마 메타데이터에 공격자가 제어할 수 있는 문자열이 포함될 수 있음
    String javaClass = parquetSchema.getField("java_class");
    // 위험: 문자열로부터 임의의 클래스를 인스턴스화함
    Class clazz = Class.forName(javaClass);  // 여기서 RCE 발생
    return clazz.newInstance();
}

# 악성 스키마를 포함한 조작된 Parquet 파일(개념적)
{
  "schema": {
    "type": "record",
    "name": "exploit",
    "fields": [],
    "java_class": "com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl",
    "avro.java.string": "[base64-encoded malicious bytecode]"
  }
}

가젯 체인 익스플로잇

공격자는 Avro 스키마 메타데이터가 Java 가젯 체인을 참조하는 Parquet 파일을 생성합니다 — 이는 궁극적으로 임의 코드 실행으로 이어지는 일련의 클래스 인스턴스화입니다. Commons Collections, Spring Framework, 그리고 다른 일반적인 Java 라이브러리들이 이 공격에 적합한 가젯 체인을 제공합니다.

노출 대상

다음에 해당하는 모든 Java 애플리케이션:

고위험 환경에는 다음이 포함됩니다:

완화 방안

  1. parquet-java를 1.15.1+로 업그레이드: 이 수정은 스키마 메타데이터의 클래스 이름에 대한 허용 목록 검증을 추가합니다
  2. Parquet 파일 소스 점검: 환경에 Parquet 파일이 유입되는 모든 위치를 인벤토리화하세요
  3. 파일 소스 검증 구현: 암호학적으로 검증된 소스의 Parquet 파일만 처리하세요
  4. 최소 권한으로 데이터 파이프라인 실행: 파이프라인 실행 역할에 최소 권한 IAM 정책을 적용해 파급 범위를 제한하세요
  5. 네트워크 아웃바운드 제한: 데이터 처리 클러스터는 침해 후 영향을 제한하기 위해 아웃바운드 인터넷 접근이 제한되어야 합니다
  6. Java 역직렬화 보호 기능 배포: SerialKiller와 같은 도구는 역직렬화 공격에 대한 심층 방어를 제공할 수 있습니다

KENSAI 탐지 역량

귀하의 데이터 파이프라인이 CVE-2025-30065에 취약합니까?

KENSAI는 귀하의 Java 애플리케이션, 컨테이너 이미지, 클라우드 데이터 인프라를 스캔해 취약한 Parquet 버전을 찾아냅니다. 공격자가 악용하기 전에 데이터 파이프라인을 보호하세요.

데이터 인프라 스캔하기 →

관련 기사

유럽집행위원회, AWS 클라우드 침해 조사 — EU 이사회, 중국·이란 사이버 기업 제재 — 개정 사이버보안법, 해외 공급업체 겨냥 보안 브리핑: OpenAI Codex 보안, MuddyWater Dindoor 및 ClickFix CastleRAT — 2026년 3월 8일 LeakNet 랜섬웨어, ClickFix + Deno 런타임 채택