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-85245 — Prova de conceito executável em Spring Boot que reproduz o CVE-2026-85245, uma divulgação de dados entre exchanges no camel-thrift, com comparação entre versões afetadas e corrigidas e notas de mitigação. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-85245
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e Educação
GitHuboscerd/cve-2026-85245

CVE-2026-85245

Prova de conceito executável em Spring Boot que reproduz o CVE-2026-85245, uma divulgação de dados entre exchanges no camel-thrift, com comparação entre versões afetadas e corrigidas e notas de mitigação.

Ver Repositório
há 1 diaAinda 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-85245 — camel-thrift: divulgação de dados entre exchanges (defaultInstance compartilhado)

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que o formato de dados Thrift era desserializado no defaultInstance compartilhado do tipo de destino, em vez de em uma cópia nova, e retornava esse objeto compartilhado como corpo da exchange. Como a instância é compartilhada em todo o processo, o estado gravado durante a desserialização de uma mensagem permanecia no objeto e era visível para todas as mensagens posteriores que usassem o mesmo tipo. Campos ausentes em um payload posterior mantinham os valores da mensagem anterior, de modo que o conteúdo pertencente a um remetente podia ser lido durante o processamento da mensagem de outro remetente, e exchanges concorrentes podiam observar o estado parcialmente gravado umas das outras. Em uma implantação que atende mais de um tenant ou usuário pela mesma rota, isso é a divulgação dos dados de uma parte para outra.

Somente Spring Boot. Não existe extensão camel-quarkus-thrift, portanto este reprodutor inclui um único módulo Camel Spring Boot. (A falha está no ThriftDataFormat do componente, que é independente de runtime.)

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-thrift 4.22.0 (afetado; corrigido em 4.22.1)

O que ele demonstra

Uma rota define um único ThriftDataFormat (respaldado pelo tipo Thrift gerado Work) e o reutiliza para cada mensagem, como as rotas normalmente fazem. Dois tenants enviam uma mensagem por ele:

  • tenant A: Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} — o campo opcional comment carrega dados sensíveis;
  • tenant B: Work{num1=3, op=SUBTRACT} — sem o campo comment.

A rota desserializa a mensagem do tenant A e, em seguida, a do tenant B.

  • Afetado: o objeto desserializado do tenant B retorna carregando o comment do tenant A — o Thrift apenas atribui os campos presentes nos bytes recebidos, e ambas as mensagens foram desserializadas na (e retornadas como a) mesma instância compartilhada, de modo que o campo ausente de B manteve o valor de A. Os dois corpos são literalmente o mesmo objeto.
  • Corrigido: o comment do tenant B é null — cada exchange recebe sua própria cópia limpa.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-thrift (ThriftDataFormat.unmarshal)
CWECWE-488 (Exposição de Elemento de Dados à Sessão Errada)
SeveridadeMÉDIA
Vetor de ataqueDuas mensagens do mesmo tipo Thrift através de uma rota; uma mensagem posterior que omite um campo herda o valor da anterior
ImpactoDivulgação de dados entre trocas / entre inquilinos; trocas concorrentes podem observar o estado parcialmente escrito umas das outras
Versões AfetadasA partir de 4.0.0 antes de 4.18.5, a partir de 4.19.0 antes de 4.22.1
Versões Corrigidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24442
CréditoClaude Security Scan Tool

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

Os tipos Thrift gerados (Work, Operation) são os fixtures de teste públicos dos próprios testes camel-thrift do Apache Camel.

A correção

ThriftDataFormat.unmarshal agora desserializa em uma cópia por troca: TBase instance = defaultInstance.deepCopy(); instance.clear(); — em seguida, desserializa os bytes em instance e o retorna. Cada troca recebe seu próprio objeto limpo, de modo que nenhum campo é transportado entre mensagens e nenhuma duas trocas compartilham um corpo.

Mitigação se você não puder atualizar

Copie o corpo desserializado para uma nova instância imediatamente após a execução do formato de dados, e não retenha referências ao objeto retornado.

Aviso Legal

Este repositório é publicado para fins educacionais e defensivos: para ajudar os usuários do Apache Camel a entender a vulnerabilidade, verificar se são afetados e confirmar que a atualização a resolve. O "segredo" é uma string marcadora inerte e fictícia. Não use este material contra sistemas que você não possui ou opera.

Baixar ferramenta