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-78165 — Prova de conceito executável que reproduz a CVE-2026-78165, demonstrando a desserialização JDK sem filtragem de payloads PUBLISH do Redis no Apache Camel camel-spring-redis. | Kitploit
Ferramentas/GitHubGitHub/oscerd/cve-2026-78165
Ferramentas DefensivasAnálise de VulnerabilidadesExploraçãoAprendizado e Educação
GitHuboscerd/cve-2026-78165

CVE-2026-78165

Prova de conceito executável que reproduz a CVE-2026-78165, demonstrando a desserialização JDK sem filtragem de payloads PUBLISH do Redis no Apache Camel camel-spring-redis.

Ver Repositório
3há 2 diasAinda 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-78165 — camel-spring-redis: desserialização JDK não filtrada de payloads Redis

Reprodutor de prova de conceito executável para a vulnerabilidade do Apache Camel em que o camel-spring-redis, quando nenhuma opção serializer está configurada, construía um JdkSerializationRedisSerializer puro com nenhum java.io.ObjectInputFilter e o utilizava em todas as leituras. RedisConsumer.setBody aplicava-o aos bytes brutos de cada mensagem publicada nos canais subscritos, antes de o Exchange ser construído — pelo que um ator capaz de emitir PUBLISH num canal subscrito alcançava diretamente o sink de desserialização e podia executar o readObject de um grafo de objetos serializados arbitrário (execução remota de código, CWE-502). O mesmo serializador predefinido suportava os comandos de leitura do produtor (GET/HGET/HGETALL/HVALS) e o SpringRedisIdempotentRepository.

RuntimeDiretórioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-redis 4.22.0 (afetado; corrigido em 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-spring-redis 3.29.0 (Camel 4.15.0, afetado)

O defeito remonta à introdução do componente na versão 2.11.0, pelo que todas as versões afetadas e o Camel 4.15.0 no Camel Quarkus mais recente são vulneráveis. A correção é disponibilizada no Camel 4.18.5 / 4.22.1 / 4.23.0; o módulo Spring Boot executa tanto a build afetada (4.22.0) como a build corrigida (4.22.1). Nenhuma versão lançada do Camel Quarkus inclui ainda um Camel corrigido.

O que demonstra

A aplicação executa uma rota Camel que faz SUBSCRIBE ao cve-channel sem qualquer opção serializer (pelo que é utilizado o JdkSerializationRedisSerializer predefinido). O atacante é um cliente Redis simples que apenas consegue fazer PUBLISH para esse canal — não tem acesso ao processo Camel. Publica os bytes serializados brutos de um com.example.PwnMarker deliberadamente benigno, cujo readObject apenas altera um flag global da JVM (sem gadget, sem comando). Na build afetada o consumidor desserializa-o e o readObject é executado; na build corrigida a allow-list predefinida (tipos padrão java./javax. e org.apache.camel.) rejeita com.example.PwnMarker com InvalidClassException: filter status: REJECTED.

cd camel-spring-boot
mvn clean package
docker compose up -d --build     # starts Redis + the reproducer
curl -s http://localhost:8080/exploit/attack
docker compose down

Saída esperada na build afetada:

Attacker connects to Redis redis:6379 and PUBLISHes a serialized com.example.PwnMarker to channel 'cve-channel'.
PUBLISH delivered to 1 subscriber(s).

Result:
>>> PROVEN: the Redis consumer deserialized the attacker-published, non-allow-listed class
>>> (com.example.PwnMarker) with no ObjectInputFilter — its readObject executed.

Resumo da Vulnerabilidade

PropriedadeValor
Componentecamel-spring-redis (camel-spring-redis-starter / camel-quarkus-spring-redis)
CWECWE-502 (Desserialização de Dados Não Confiáveis)
SeveridadeALTA
Vetor de ataquePUBLISH para um canal ao qual um consumidor Camel spring-redis está inscrito (ou controlo de uma chave Redis que o produtor lê); o serializador predefinido desserializa o payload sem qualquer filtro
ImpactoExecução remota de código dentro do processo Camel através de uma classe gadget, antes de qualquer lógica de rota ser executada
Versões AfetadasDa 2.11.0 anterior à 4.18.5, da 4.19.0 anterior à 4.22.1
Versões Corrigidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24421
CréditoLeon Zlobecki

Advisory: https://camel.apache.org/security/CVE-2026-78165.html

A correção

Uma nova opção de endpoint deserializationFilter controla o filtro aplicado enquanto o serializador predefinido lê os payloads. Quando não definido, o jdk.serialFilter à escala da JVM é respeitado se estiver presente, caso contrário é aplicada uma lista de permissões conservadora (tipos Java padrão e Apache Camel; java.net negado), e nas versões 4.23.0/4.22.1 os limites de forma de grafo da JEP-290 são adicionalmente impostos. O serializador é construído através do seu construtor baseado em Converter com um conversor de desserialização que define o filtro no stream antes de o grafo ser lido. Definir serializer para um RedisSerializer personalizado continua a contornar o filtro, uma vez que o Camel deixa então de controlar a forma como o payload é lido.

Mitigação se não puder atualizar

Defina o -Djdk.serialFilter=... à escala da JVM (o caminho afetado respeita-o), ou defina a opção de endpoint serializer para um serializador não-Java, como StringRedisSerializer (como opção serializer, não apenas num redisTemplate personalizado). Exija autenticação no Redis e restrinja quem pode publicar nos canais subscritos.

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. O payload é um marcador benigno que não executa qualquer código. Não utilize este material contra sistemas que não possui ou opera.

Baixar ferramenta