Apache FOP: bypass de escape → injeção PostScript → leitura de arquivo do servidor
⚔️ Técnicas e Métodos de Ataque2026-03-04, 08:31
Apache FOP (Formatting Objects Processor) é uma biblioteca Java usada para gerar documentos (PDF, PostScript) a partir de modelos XML.
Neste caso, o FOP não gera o PDF diretamente. Em vez disso, ele primeiro produz PostScript, que é então convertido para PDF pelo GhostScript. A vulnerabilidade aparece durante este estágio intermediário.
O FOP escapa o caractere ) como ). Uma rotina separada divide linhas com mais de 200 caracteres inserindo \ seguido por uma nova linha. No entanto, esta lógica não leva em conta o fato de que ) é uma única sequência de escape.
Se a barra invertida de ) cair exatamente no limite de uma quebra de linha, a lógica de divisão de linha insere outro \ e nova linha, produzindo: \n).
Aqui a primeira barra invertida escapa a segunda, deixando ) sem escape. Isso fecha prematuramente a string PostScript, permitindo que o atacante injete código PostScript arbitrário.
O código injetado é então executado pelo GhostScript durante a geração do PDF, permitindo leituras de arquivos do lado do servidor. O artigo também descreve restrições de exploração, técnicas de bypass e como encadear este problema com CVE-2025-46646 (GhostScript) pode levar à execução remota de código completa.
📎 Artigo: https://offsec.almond.consulting/bypassing-apache-fop-escaping-to-reach-ghostscript.html
🔨 PoC: https://github.com/AlmondOffSec/misc/tree/master/apache-fop-poc
💬 Discutir
Vulnerabilidades
Pesquisadores
Fornecedor
Produto
Publicado
2026-03-04, 08:31