Anthropic usa IA para identificar falha antiga na biblioteca Pillow do Python
Uma vulnerabilidade crítica na Pillow, biblioteca popular para abrir, editar e converter imagens em Python, pode permitir a execução de comandos no sistema operacional. O problema está ligado ao processamento de arquivos EPS e à forma como a biblioteca interage com o Ghostscript, programa externo usado para converter esse formato.
Identificada como CVE-2026-112900, a falha recebeu pontuação 9,2 no CVSS e foi corrigida na versão 13.0.0 da Pillow, lançada em 16 de outubro de 2026. O defeito estava presente em versões entre a 2.6.0 e a 12.3.0.
O risco não depende necessariamente de uma imagem maliciosa. A vulnerabilidade está relacionada ao nome do arquivo: se um invasor puder controlá-lo e a aplicação encaminhar essa informação ao Ghostscript sem validação adequada, a entrada poderá ser interpretada como instrução. Assim, até um EPS legítimo pode se tornar perigoso quando processado sob um nome manipulado.
A exploração, porém, exige condições específicas. O Ghostscript precisa estar instalado no servidor, e o atacante deve conseguir influenciar o nome do arquivo utilizado pela aplicação. Esse cenário pode ocorrer em serviços que aceitam imagens enviadas por usuários, criam miniaturas ou processam documentos e PDFs.
A dimensão do problema é ampliada pela popularidade da Pillow. Segundo a OX Security, a biblioteca registra cerca de 436 milhões de downloads mensais e é utilizada em aplicações web, ferramentas de edição, projetos de inteligência artificial e sistemas de aprendizado de máquina.
Embora os mantenedores tenham classificado a CVE-2026-112900 como moderada em razão dos requisitos para explorá-la, o registro CVE associado apresenta pontuação crítica de 9,2. Até o momento, não há evidências conhecidas de exploração ativa das falhas corrigidas nessa atualização.
Outros problemas corrigidos na versão 13.0.0
A atualização também corrige vulnerabilidades relacionadas aos formatos FlashPix, JPEG e TIFF, além de problemas de corrupção de memória, uso de dados antigos após mudanças no modo da imagem e estouros de buffer.
Uma falha no processamento de arquivos FlashPix (FPX) pode levar à execução de comandos maliciosos quando uma aplicação utiliza `Image.open()` para abrir um arquivo preparado para explorar o problema. O risco depende da presença do pacote opcional `olefile`. Como a Pillow reconhece o formato pelo conteúdo, e não apenas pela extensão, renomear o arquivo não é necessariamente suficiente para impedir que ele seja processado.
Outra vulnerabilidade, CVE-2026-112403, afeta a criação de miniaturas de imagens JPEG sem perdas. O estouro de buffer pode interromper inesperadamente o processo, mas o alerta de segurança não confirma que essa falha, isoladamente, permita executar código.
A descoberta da CVE-2026-112403 teve participação da Anthropic: o modelo Claude foi utilizado na análise de segurança de software de código aberto, e a Ada Logics fez a validação manual do problema.
Já a CVE-2026-112393 está na Pillow desde 2013 e envolve o salvamento de imagens TIFF comprimidas diretamente na memória, por exemplo, com o uso de `io.BytesIO`. Pesquisadores conseguiram provocar falhas no processo e demonstraram execução de código ao combinar essa vulnerabilidade com outro problema que permitia revelar endereços de memória. O salvamento de arquivos TIFF diretamente em disco não é afetado por esse defeito específico.
As falhas associadas a EPS, TIFF e miniaturas JPEG têm registros CVE com pontuação 9,2, mas não são exploradas da mesma maneira nem apresentam os mesmos requisitos. Para o problema relacionado ao TIFF, há também uma prova de conceito pública registrada pela CISA.
Como reduzir o risco
A medida recomendada é atualizar a Pillow para a versão 13.0.0 ou posterior. Em ambientes compatíveis, a instalação pode ser feita com:
“`bash
python -m pip install –upgrade Pillow
“`
Depois da atualização, é importante reconstruir contêineres, pacotes e imagens-base. Atualizar apenas o ambiente de desenvolvimento pode deixar servidores de produção executando versões vulneráveis. Também convém conferir os arquivos de dependências e os mecanismos de implantação automática para evitar que uma versão antiga seja reinstalada.
A versão 13.0.0 deixou de oferecer suporte ao Python 3.10. Portanto, equipes que ainda utilizam essa versão do interpretador precisam migrar para Python 3.11 ou posterior antes de atualizar a Pillow. Essa mudança deve ser testada em ambiente de homologação, especialmente em sistemas que dependem de outras bibliotecas de imagem.
Enquanto a atualização não puder ser aplicada, os mantenedores recomendam remover o Ghostscript de servidores que processam uploads não confiáveis, quando essa ferramenta não for necessária. Outra medida é impedir que usuários controlem os nomes de arquivos EPS enviados ao processamento. A validação deve ocorrer no servidor, sem confiar apenas na extensão ou no nome fornecido pelo cliente.
Também é prudente limitar os formatos aceitos, restringir o tamanho dos arquivos e executar o processamento de imagens com permissões reduzidas. Essas medidas não substituem a correção, mas podem diminuir o impacto de uma exploração. Em serviços de alto risco, o processamento pode ser isolado em um contêiner ou processo separado, com acesso mínimo ao sistema e sem credenciais desnecessárias.
Para JPEGs não confiáveis, as recomendações incluem revisar o uso de chamadas como `draft()` e `thumbnail()`. Dependendo do fluxo da aplicação, pode ser mais seguro carregar os dados com `load()` antes de prosseguir ou utilizar `reducing_gap=None`. A escolha deve ser testada com os arquivos e os requisitos de desempenho do sistema, pois essas alternativas podem alterar o consumo de recursos e o resultado do processamento.
Por fim, equipes responsáveis por aplicações que recebem imagens devem identificar onde a Pillow é utilizada, verificar a versão instalada e priorizar a atualização nos servidores expostos à internet. Como a biblioteca pode estar incluída indiretamente em outros pacotes, a auditoria das dependências é tão importante quanto a atualização direta.
