Pillow 13 corrige estouros de heap; PoC pública executa código via FPX
A biblioteca de imagens Python Pillow corrigiu na versão 13.0.0 um estouro de heap crítico (CVE-2026-112398) na decodificação FlashPix (FPX) JPEG: abrir um único arquivo malicioso com Image.open executa comandos do atacante, e o advisory publica PoC funcional. O release também corrige injeção de argumentos no Ghostscript (CVE-2026-112900), estouro em _tiffWriteProc ao salvar TIFF (CVE-2026-112393) e estouro no decodificador JPEG (CVE-2026-112403). As fontes não relatam exploração ativa; atualize para 13.0.0 e desinstale a dependência opcional olefile em serviços que abrem uploads.
O que aconteceu
A biblioteca Python de processamento de imagens Pillow lançou a versão 13.0.0 corrigindo quatro falhas de segurança, incluindo uma crítica (CVE-2026-112398) que executa comandos do atacante quando o sistema apenas abre um arquivo de imagem malicioso. Serviços que processam uploads, como geração de miniaturas e conversão de mídia, podem ser atingidos sem qualquer interação do usuário.
Por que importa
Quem envia um arquivo FPX malicioso consegue executar comandos no processo que trata a imagem, comprometendo o servidor e os dados e privilégios desse processo. Toda aplicação que abre arquivos não confiáveis com a dependência opcional olefile instalada está exposta; a detecção é pela magic OLE2 do conteúdo, não pela extensão do arquivo.
O que fazer
Atualize Pillow para 13.0.0 em todos os ambientes; a versão remove suporte ao Python 3.10 e traz remoções e deprecações, então teste antes de promover. Como medida imediata, desinstale a dependência olefile dos serviços que abrem uploads e revise o tratamento de arquivos EPS cujo nome seja controlável pelo usuário.
Para o time técnico
- CVE
- CVE-2026-112398, CVE-2026-112900, CVE-2026-112393, CVE-2026-112403
- Afetados
- Pillow (python-pillow) Pillow (Python imaging library) · pillow <= 12.3.0 para CVE-2026-112398, CVE-2026-112393 e CVE-2026-112403; Pillow 2.6.0 a 12.3.0 para CVE-2026-112900 (Ghostscript).
- Exploração
- As fontes não relatam exploração ativa em campo. O advisory publica PoC funcional: abrir "shell.fpx" executa comando via system@plt em Pillow 12.2.0 (Ubuntu 24.04 x86_64, glibc 2.39), sem interação do usuário; o RCE no Ghostscript foi verificado em PoC com Ghostscript 10.02.1 e 10.07.1, com -dSAFER ativo.
- Correção
- Atualizar para Pillow 13.0.0 (release de 16 de outubro). Mitigação para FPX: desinstalar olefile bloqueia a detecção automática de FPX por Image.open. Para Ghostscript, a correção normaliza o caminho do arquivo para absoluto (os.path.abspath) antes de montar a linha de comando do binário.
- Vetor
- FPX (CVE-2026-112398): escrita fora dos limites em heap no FpxImagePlugin. Image.open detecta FPX pela magic OLE2 (D0CF11E0) sempre que o pacote opcional olefile está instalado, independentemente da extensão; no tile JPEG, o buffer é dimensionado para o rawmode "LA" (2 bytes/pixel), mas com out_color_space JCS_UNKNOWN o libjpeg grava num_components bytes/pixel (4, vindos do SOF do JPEG embutido), estourando o buffer com comprimento e conteúdo controlados (CWE-122/787). Ghostscript (CVE-2026-112900): EpsImagePlugin.Ghostscript insere fp.name sem validação em "-f"; nome iniciado por "-" ou "@" injeta argumentos (CWE-88), encadeável a RCE mesmo com -dSAFER. TIFF (CVE-2026-112393): estouro em _tiffWriteProc ao salvar TIFF em BytesIO.
- Mais detalhes
- Pesquisador do CVE-2026-112398: Alex Bouffard (mixbo@pebwalker.com); advisory publicado em 17 de outubro de 2026 e atualizado em 23 de outubro de 2026, com gravidade Critical (GitHub Reviewed). O PoC FPX assume interpretador não-PIE com ASLR desativado no contêiner de demonstração e o comando embutido é limitado a 7 bytes. A falha do Ghostscript decorre do nome do arquivo, não do conteúdo do EPS, e não é coberta pela política de bloquear EPS não confiável. A 13.0.0 também limita dados de tags TIFF retidos ao tamanho do stream e valida tags TIFF contra definições do libtiff.
Linha do tempo
Incidente aberto.
Fontes 4 fontes
- GHSA-5x8w-8jj5-q52h: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution python-pillow/Pillow
- GHSA-5x8w-8jj5-q52h GitHub Advisory Database
- CVE-2026-112398 NVD
- Pillow 13.0.0 release python-pillow/Pillow
- GHSA-w889-685w-c8fh: Argument Injection in Ghostscript call, potentially leading into RCE (CVE-2026-112900) python-pillow/Pillow


