Três vulnerabilidades críticas de dia zero que afetam o PickleScan, uma ferramenta amplamente utilizada para escanear arquivos de pickle em Python e modelos PyTorch, foram descobertas por pesquisadores de cibersegurança.
As falhas, todas com classificação CVSS de 9,3, mostram como atacantes poderiam burlar salvaguardas de varredura de modelos e distribuir modelos maliciosos de aprendizado de máquina sem serem detectados.
A Equipe de Pesquisa em Segurança do JFrog descreveu as vulnerabilidades em um aviso publicado em 2 de dezembro.
Três Falhas Críticas
A primeira falha, CVE-2025-10155, envolvia um simples bypass de extensão de arquivo. Pesquisadores descobriram que renomear um arquivo pickle malicioso para uma extensão comum do PyTorch, como .bin ou .pt, fazia com que o PickleScan classificasse incorretamente o tipo de arquivo e o transferisse para a lógica de análise sintática específica do PyTorch. Como o scanner priorizou extensões em vez da inspeção de conteúdo, a incompatibilidade resultou em uma varredura falhada enquanto o PyTorch ainda carregava o arquivo normalmente.
Uma segunda edição, CVE-2025-10156, revelou uma lacuna maior entre a forma como o PickleScan e o PyTorch processam arquivos ZIP. O PickleScan dependia do módulo zipfile do Python, que gerava exceções ao encontrar erros de Verificação de Redundância Cíclica (CRC). O PyTorch ignorava essas incompatibilidades, então um arquivo corrompido contendo código malicioso podia carregar com sucesso. Pesquisadores demonstraram que zerar valores CRC em um arquivo de modelos PyTorch fazia o PickleScan falhar, criando um ponto cego que atacantes podiam explorar para enviar modelos ignorados.
A terceira vulnerabilidade, CVE-2025-10157, permitiu que atacantes escapassem da lista negra de importados perigosos do PickleScan. Em vez de referenciar diretamente um módulo sinalizado, uma carga maliciosa poderia chamar uma subclasse desse módulo, levando o scanner a rotulá-lo apenas como “Suspeito”. Uma prova de conceito (POC) usando classes internas de assínpio mostrou como comandos arbitrários podiam ser executados durante a desserialização, evitando uma classificação “Perigosa”.
Os resultados destacam riscos sistêmicos, incluindo:
-
Dependência de uma única ferramenta de varredura
-
Comportamento divergente de manuseio de arquivos entre ferramentas de segurança e frameworks de aprendizado de máquina (ML)
-
Exposição a ataques em grande escala na cadeia de suprimentos em grandes polos de modelos
As vulnerabilidades foram divulgadas aos mantenedores do PickleScan em 29 de junho de 2025 e corrigidas em 2 de setembro de 2025.
O JFrog recomendou atualizar o PickleScan para a versão 0.0.31, adotando defesas em camadas e migrando para formatos mais seguros como os Safetensors.
