Blog

Falha no Pillow (CVE-2026-112900): o que é e como corrigir

Entenda a CVE-2026-112900 no Pillow, que permite injetar comandos no Ghostscript via arquivos EPS, veja quem está em risco e como atualizar para a 13.0.0.

Falha grave no Pillow CVE-2026-112900: injeção de argumentos no Ghostscript, corrigida na versão 13.0.0

O Pillow, a biblioteca de imagens mais usada do Python, publicou em 16 de outubro de 2026 a versão 13.0.0, que corrige uma falha grave: a CVE-2026-112900. Com ela, quem consegue escolher o nome de um arquivo EPS ou PostScript que um sistema abre pode injetar opções no Ghostscript e, em certas condições, executar comandos no servidor.

Neste guia você entende como a falha funciona, quem está em risco, como verificar a sua versão e como corrigir. E já adiantamos o mais importante para quem usa o easyPDF:

✅ O easyPDF está seguro. Atualizamos o Pillow para a versão corrigida (13.0.0) em 27/10/2026. E, mesmo antes da atualização, o easyPDF já salvava cada arquivo enviado com um nome aleatório criado pelo servidor, então essa falha não podia ser disparada pelos nossos envios. Você não precisa fazer nada.

O que é o Pillow e por que essa falha importa

O Pillow é a biblioteca que milhões de sistemas em Python usam para abrir, converter e gerar imagens: miniaturas de fotos, conversão de imagens para PDF, marcas d'água, leitura de documentos escaneados. Ele é dependência de frameworks, ferramentas de IA, lojas virtuais e sistemas de gestão, muitas vezes sem que a equipe saiba que ele está lá.

Por isso, uma falha no Pillow costuma atingir muita gente de uma vez. A versão 13.0.0 corrige não só a CVE-2026-112900, mas dezenas de outros problemas de memória e de travamento ao abrir arquivos maliciosos.

Como funciona a falha CVE-2026-112900

Diagrama da CVE-2026-112900: arquivo com nome iniciado por hífen ou arroba, Image.open chama o Ghostscript e o nome vira opção do Ghostscript
O nome do arquivo vira uma opção do Ghostscript. Na 13.0.0, o caminho passa a ser absoluto.

Para mostrar imagens EPS e PostScript, o Pillow chama o programa Ghostscript e passa o nome do arquivo logo depois da opção -f. O problema é que o Ghostscript entende tudo o que começa com - como uma opção, e tudo o que começa com @ como “leia mais opções deste arquivo”.

Então, se um sistema abre com Image.open() um arquivo cujo nome foi escolhido por quem enviou (por exemplo, -sOutputFile=… ou @opcoes.txt), esse nome deixa de ser um nome e passa a ser uma instrução para o Ghostscript. Segundo o relato público, nem o modo -dSAFER do Ghostscript impede a injeção, e com um segundo arquivo controlado pelo atacante é possível executar comandos no servidor.

A correção na 13.0.0 é simples: o Pillow converte o caminho para absoluto (por exemplo, /pasta/arquivo.eps) antes de chamar o Ghostscript. Um caminho absoluto nunca começa com - ou @.

Quem está em risco

O seu sistema pode ser afetado se tudo isto for verdade ao mesmo tempo:

Sobre a gravidade: o próprio projeto Pillow classifica o problema como moderado, e outras bases de vulnerabilidades o classificam como crítico. Até a publicação, não havia registro de exploração ativa. Mesmo assim, como a atualização corrige também muitas outras falhas, a recomendação é atualizar já.

Por que o easyPDF está seguro

O easyPDF usa o Pillow em algumas ferramentas, como Imagens para PDF e marca d'água. Fizemos três coisas:

Você não precisa trocar senha, reenviar arquivos nem mudar nada. Pode continuar usando as ferramentas normalmente.

Como verificar e corrigir no seu projeto

Comandos para verificar a versão do Pillow e atualizar para a 13.0.0 com pip
Rode os comandos no mesmo ambiente Python da sua aplicação.

Se você mantém um sistema em Python, siga estes passos:

  1. Descubra a versão instalada: python -c "import PIL; print(PIL.__version__)". Se aparecer qualquer versão abaixo de 13.0.0, atualize.
  2. Atualize: pip install -U "Pillow>=13.0.0".
  3. Fixe a versão mínima no requirements.txt (ou no pyproject.toml) com Pillow>=13.0.0, para que um novo deploy não volte para uma versão antiga.
  4. Reconstrua imagens Docker e pacotes que levam uma cópia própria do Pillow.
  5. Reinicie a aplicação e confira a versão de novo.

Se não puder atualizar agora, há duas medidas paliativas: não abrir EPS/PostScript enviados por usuários (ou remover o Ghostscript do servidor, o que desliga esse suporte) e sempre salvar os uploads com nomes gerados pelo sistema, nunca com o nome original.

Cuidados ao atualizar para o Pillow 13

A versão 13.0.0 tem algumas mudanças que podem exigir ajustes:

Rode os testes do seu projeto antes de publicar. No easyPDF, todos os testes passaram sem nenhuma mudança no código.

Outras falhas corrigidas na 13.0.0

Além da CVE-2026-112900, a versão 13.0.0 corrige problemas de estouro de memória e de travamento ao abrir arquivos JPEG, TIFF, PDF, GIF, BMP, WMF/EMF e outros formatos preparados para atacar. Vários deles foram classificados como críticos ou altos pelo próprio Pillow. Mais um motivo para não deixar a atualização para depois.

Fontes: notas da versão 13.0.0 do Pillow e análise da CVE-2026-112900.

Converta imagens em PDF com segurança no easyPDF →

Perguntas frequentes

Meus arquivos no easyPDF ficaram expostos?

Não. O easyPDF salva cada arquivo enviado com um nome aleatório gerado pelo servidor, o que impede o ataque descrito na CVE-2026-112900, e já roda o Pillow 13.0.0, a versão corrigida. Você não precisa fazer nada.

Qual versão do Pillow corrige a CVE-2026-112900?

A versão 13.0.0, lançada em 16 de outubro de 2026. As versões de 2.6.0 até 12.3.0 estão afetadas e não houve correção para a linha 12.

Preciso ter o Ghostscript instalado para ser afetado?

Sim. O ataque depende de o Pillow chamar o Ghostscript para abrir arquivos EPS ou PostScript. Sem o Ghostscript, esses formatos não abrem e a injeção não acontece, mas as outras falhas corrigidas na 13.0.0 continuam sendo motivo para atualizar.

Como saber qual versão do Pillow eu uso?

Rode python -c "import PIL; print(PIL.__version__)" no mesmo ambiente Python da sua aplicação. Se o resultado for menor que 13.0.0, atualize com pip install -U "Pillow>=13.0.0".