Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-91858 — Reprodutor executável em Spring Boot e Quarkus para a CVE-2026-91858, uma XXE no Apache Camel camel-fop por meio de um TransformerFactory de terceiros, com verificação da versão afetada e da versão corrigida. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-91858
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e Educação
GitHuboscerd/cve-2026-91858

CVE-2026-91858

Reprodutor executável em Spring Boot e Quarkus para a CVE-2026-91858, uma XXE no Apache Camel camel-fop por meio de um TransformerFactory de terceiros, com verificação da versão afetada e da versão corrigida.

Ver Repositório
10há 19h 12mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-91858 — camel-fop: XML External Entity (XXE) via a third-party TransformerFactory

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que o FopProducer do camel-fop criava seu javax.xml.transform.TransformerFactory apenas com FEATURE_SECURE_PROCESSING antes de executar uma transformação de identidade sobre o corpo da mensagem XSL-FO. No transformador integrado do JDK, esse recurso por si só já esvazia os limites accessExternalDTD/accessExternalStylesheet, de modo que recursos externos são recusados. Mas quando um TransformerFactory JAXP de terceiros, como o Saxon-HE, está no classpath — por exemplo, porque a aplicação também usa camel-xslt-saxon ou camel-saxon — TransformerFactory.newInstance() retorna essa implementação, e FEATURE_SECURE_PROCESSING sozinho não restringe o acesso a recursos externos nela. Um DOCTYPE com um subconjunto externo declarado no corpo XSL-FO é então resolvido enquanto o corpo é transformado, de modo que o documento de um remetente externo pode ler arquivos legíveis pelo processo Camel ou fazê-lo emitir requisições para hosts que ele nomeia (CWE-611).

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-fop 4.22.0 (afetado; corrigido 4.22.1) + Saxon-HE 13.0
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-fop (Camel 4.22.0, afetado; controle corrigido CQ 3.40.0 / Camel 4.22.1) + Saxon-HE 13.0

Ambos os módulos demonstram o comportamento afetado e o corrigido contra o FopProducer real. O Saxon-HE está no classpath em ambos — é a precondição para a falha; uma implantação padrão usando o transformador do JDK não é afetada antes ou depois da correção.

O que ele demonstra

O endpoint do verificador /exploit/attack inicia um callback HTTP em processo e envia um documento XSL-FO para fop:pdf cujo DOCTYPE declara um DTD externo apontando para esse callback:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fo:root SYSTEM "http://localhost:<port>/external.dtd">
<fo:root …>…Hello…</fo:root>

O oráculo é simplesmente se o callback foi solicitado — uma prova definitiva de que o recurso externo foi buscado:

  • Afetado: TransformerFactory.newInstance() retorna Saxon, que apenas com processamento seguro ainda busca o DTD externo — o callback é acionado (o mesmo mecanismo lê URLs file://).
  • Corrigido: ACCESS_EXTERNAL_DTD é definido como "", então Saxon recusa o DTD externo; o callback nunca é acionado.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: callback hit = true; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -Djava.awt.headless=true -jar target/cve-2026-91858-fop-xxe-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.22.0): callback hit = true
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -Djava.awt.headless=true -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: callback hit = false

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-fop (FopProducer)
CWECWE-611 (Restrição Imprópria de Referência a Entidade Externa XML)
SeveridadeMÉDIA
Vetor de ataqueO XSL-FO de um remetente externo chega a um produtor fop:, numa implantação que também possui um TransformerFactory JAXP de terceiros (por exemplo, Saxon-HE) no classpath
ImpactoLeitura de ficheiros locais legíveis pelo processo Camel; SSRF para hosts internos nomeados no documento
Versões AfetadasDesde 4.0.0 antes de 4.18.5, desde 4.19.0 antes de 4.22.1 (apenas com um TransformerFactory não-JDK presente)
Versões Corrigidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24605
CréditoClaude Security Scan Tool

Aviso: https://camel.apache.org/security/CVE-2026-91858.html

O módulo afetado do Quarkus é construído sobre CQ 3.39.0 (Camel 4.22.0). O controlo corrigido é CQ 3.40.0 (Camel 4.22.1). Saxon-HE 13.0 é adicionado a ambos os módulos como substituto de uma aplicação que também usa camel-xslt-saxon/camel-saxon; sem um TransformerFactory não-JDK a falha não é alcançável.

A correção

FopProducer agora também define XMLConstants.ACCESS_EXTERNAL_DTD e XMLConstants.ACCESS_EXTERNAL_STYLESHEET como string vazia no TransformerFactory que cria (além de FEATURE_SECURE_PROCESSING), correspondendo à configuração segura de processamento XML usada por XmlConverter. O acesso a DTD e folhas de estilo externas é, portanto, recusado em qualquer implementação JAXP que respeite esses atributos, incluindo o Saxon-HE.

Mitigação se não puder atualizar

Não envie XSL-FO não confiável para um produtor fop:, ou remova o TransformerFactory JAXP alternativo (como o Saxon-HE) do classpath para que o transformador do JDK — que já recusa DTDs externas sob processamento seguro — seja utilizado.

Aviso Legal

Este repositório é publicado para fins educativos e defensivos: para ajudar os utilizadores do Apache Camel a compreender a vulnerabilidade, verificar se são afetados e confirmar que a atualização a resolve. A DTD externa aponta para um callback em processo no localhost; nada fora do reprodutor é contactado e nenhum ficheiro sensível é lido. Não utilize este material contra sistemas que não possui ou opera.

Baixar ferramenta