剣 KENSAI
Crítico CVE-2025-30065 Abril 2026 · 8 min de leitura

CVE-2025-30065: RCE por desserialização de esquema no Apache Parquet

Uma vulnerabilidade de execução remota de código de gravidade máxima na biblioteca Java do Apache Parquet permite que invasores executem código arbitrário em qualquer sistema que leia um arquivo Parquet especialmente criado. CVSS 10.0. Afeta praticamente todos os pipelines de big data que usam o formato Parquet — Spark, Flink, Hive e data warehouses em nuvem.


10.0
CRÍTICO (MÁX.)
AtributoValor
ID do CVECVE-2025-30065
Vetor CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-502: desserialização de dados não confiáveis
Publicado1º de abril de 2025
ExploraçãoNenhuma exploração ativa relatada (existe PoC público)

O que é CVE-2025-30065?

Apache Parquet é um formato de armazenamento colunar amplamente utilizado em ecossistemas de big data. O parquet-avro O módulo em versões até 1.15.0 contém uma vulnerabilidade de desserialização no código de análise de esquema. Quando um aplicativo Java lê um arquivo Parquet contendo um esquema Avro criado, o analisador desserializa as referências de classe controladas pelo invasor, levando à execução arbitrária de código no contexto do aplicativo de leitura.

Isso é particularmente perigoso porque os pipelines de dados ingerem rotineiramente arquivos Parquet de fontes externas: buckets S3, parceiros de dados, uploads de usuários, integrações ETL. Qualquer pipeline que processe arquivos Parquet não confiáveis ​​é vulnerável.

⚠ Vetor de ataque à cadeia de suprimentos

CVE-2025-30065 cria um cenário atraente de ataque à cadeia de suprimentos: um invasor que pode injetar arquivos Parquet maliciosos em um pipeline de dados (por meio de fornecedor de dados comprometido, configuração incorreta do bucket S3 ou ataque man-in-the-middle) obtém execução de código na infraestrutura de processamento de dados – potencialmente AWS EMR, Databricks, Azure HDInsight ou clusters Hadoop locais executados com credenciais de nuvem privilegiadas.

Sistemas afetados

ComponenteVersões afetadasVersão corrigida
parquet-avro (Java)<= 1.15.01.15.1+
Apache Spark (usa parquet-avro)Qualquer versão que use a biblioteca afetadaAtualizar biblioteca
Apache FlinkQualquer versão que use a biblioteca afetadaAtualizar biblioteca
Apache HiveQualquer versão que use a biblioteca afetadaAtualizar biblioteca
Amazon EMRVersões usando parquet-avro <= 1.15.0Atualize o EMR ou substitua o JAR
Tempo de execução do DatabricksVersões que usam a biblioteca afetadaVersões DBR corrigidas pelo Databricks

Detalhes técnicos

A vulnerabilidade está no AvroSchemaConverter classe dentro parquet-avro. Ao converter o esquema Parquet em esquema Avro, o código processa metadados do esquema que podem conter nomes de classe arbitrários. Esses nomes de classe são usados ​​na instanciação reflexiva sem validação de lista de permissões.

# Conceptual representation of vulnerable code path
public Schema convert(MessageType parquetSchema) {
    // Schema metadata can contain attacker-controlled strings
    String javaClass = parquetSchema.getField("java_class");
    // Dangerous: instantiates arbitrary class from string
    Class clazz = Class.forName(javaClass);  // RCE here
    return clazz.newInstance();
}
# Crafted Parquet file with malicious schema (conceptual)
{
  "schema": {
    "type": "record",
    "name": "exploit",
    "fields": [],
    "java_class": "com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl",
    "avro.java.string": "[base64-encoded malicious bytecode]"
  }
}

Exploração da cadeia de gadgets

O invasor cria um arquivo Parquet onde os metadados do esquema Avro fazem referência a uma cadeia de gadgets Java – uma sequência de instanciações de classe que, em última análise, leva à execução arbitrária de código. Commons Collections, Spring Framework e outras bibliotecas Java comuns fornecem cadeias de gadgets adequadas para esse ataque.

Quem está exposto

Qualquer aplicativo Java que:

Ambientes de alto risco incluem:

Mitigação

  1. Atualize parquet-java para 1.15.1+: A correção adiciona validação de lista de permissões para nomes de classes em metadados de esquema
  2. Audite as fontes de arquivos Parquet: Faça um inventário de todos os locais onde os arquivos Parquet entram em seu ambiente
  3. Implemente a validação da origem do arquivo: Processe apenas arquivos Parquet de fontes verificadas criptograficamente
  4. Execute pipelines de dados com privilégios mínimos: Limite o impacto garantindo que as funções de execução do pipeline tenham políticas IAM de privilégio mínimo
  5. Restrições de saída de rede: Os clusters de processamento de dados deveriam ter acesso restrito à Internet de saída para limitar o impacto pós-exploração
  6. Implante proteções de desserialização Java: Ferramentas como o SerialKiller podem fornecer defesa em profundidade contra ataques de desserialização

Capacidade de detecção KENSAI

Seu pipeline de dados é vulnerável a CVE-2025-30065?

KENSAI verifica seus aplicativos Java, imagens de contêiner e infraestrutura de dados em nuvem em busca de versões vulneráveis ​​do Parquet. Proteja seus pipelines de dados antes que invasores os explorem.

Analise sua infraestrutura de dados →

Artigos relacionados

O site está disponível para download na AWS, sem problemas de segurança Redirecionando... LeakNet Ransomware adota ClickFix + Deno Runtime