Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-78165 — Reproductor de prueba de concepto ejecutable para CVE-2026-78165, que demuestra la deserialización del JDK sin filtrar de las cargas útiles de Redis PUBLISH en Apache Camel camel-spring-redis. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-78165
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónAprendizaje y Educación
GitHuboscerd/cve-2026-78165

CVE-2026-78165

Reproductor de prueba de concepto ejecutable para CVE-2026-78165, que demuestra la deserialización del JDK sin filtrar de las cargas útiles de Redis PUBLISH en Apache Camel camel-spring-redis.

Ver Repositorio
3hace 2 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-78165 — camel-spring-redis: deserialización JDK sin filtrar de cargas útiles de Redis

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que camel-spring-redis, cuando no se configura la opción serializer, construía un JdkSerializationRedisSerializer básico sin java.io.ObjectInputFilter y lo usaba para cada lectura. RedisConsumer.setBody lo aplicaba a los bytes sin procesar de cada mensaje publicado en los canales suscritos, antes de que se construyera el Exchange — por lo que un actor capaz de emitir PUBLISH en un canal suscrito alcanzaba directamente el sumidero de deserialización y podía ejecutar el readObject de un grafo de objetos serializados arbitrario (ejecución remota de código, CWE-502). El mismo serializador por defecto respaldaba los comandos de lectura del productor (GET/HGET/HGETALL/HVALS) y SpringRedisIdempotentRepository.

Entorno de ejecuciónDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-spring-redis 4.22.0 (afectado; corregido en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-spring-redis 3.29.0 (Camel 4.15.0, afectado)

El defecto se remonta a la introducción del componente en 2.11.0, por lo que todas las versiones afectadas y el Camel 4.15.0 del Camel Quarkus más reciente son vulnerables. La corrección se incluye en Camel 4.18.5 / 4.22.1 / 4.23.0; el módulo de Spring Boot ejecuta tanto la compilación afectada (4.22.0) como la compilación corregida (4.22.1). Ningún Camel Quarkus publicado incluye todavía un Camel corregido.

Qué demuestra

La aplicación ejecuta una ruta de Camel que se SUBSCRIBE a cve-channel sin la opción serializer (por lo que se usa el JdkSerializationRedisSerializer por defecto). El atacante es un cliente de Redis simple que solo puede hacer PUBLISH en ese canal — no tiene acceso al proceso de Camel. Publica los bytes serializados sin procesar de un com.example.PwnMarker deliberadamente benigno, cuyo readObject solo cambia un indicador global de la JVM (sin gadget, sin comando). En la compilación afectada el consumidor lo deserializa y se ejecuta readObject; en la compilación corregida la lista de permitidos por defecto (tipos estándar java./javax. y org.apache.camel.) rechaza com.example.PwnMarker con 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

Salida esperada en la compilación afectada:

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.

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-spring-redis (camel-spring-redis-starter / camel-quarkus-spring-redis)
CWECWE-502 (Deserialización de datos no confiables)
SeveridadALTA
Vector de ataquePUBLISH a un canal al que se suscribe un consumidor spring-redis de Camel (o control de una clave de Redis que lee el productor); el serializador predeterminado deserializa la carga útil sin ningún filtro
ImpactoEjecución remota de código dentro del proceso de Camel mediante una clase gadget, antes de que se ejecute cualquier lógica de la ruta
Versiones afectadasDesde 2.11.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24421
CréditoLeon Zlobecki

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

La corrección

Una nueva opción de endpoint deserializationFilter controla el filtro aplicado mientras el serializador predeterminado lee las cargas útiles. Cuando no se establece, se respeta el jdk.serialFilter de todo el JVM si está presente; de lo contrario, se aplica una lista de permitidos conservadora (tipos estándar de Java y Apache Camel; java.net denegado), y en 4.23.0/4.22.1 se aplican además los límites de forma del grafo de JEP-290. El serializador se construye a través de su constructor basado en Converter con un conversor deserializador que establece el filtro en el flujo antes de que se lea el grafo. Establecer serializer en un RedisSerializer personalizado sigue omitiendo el filtro, ya que entonces Camel deja de controlar cómo se lee la carga útil.

Mitigación si no puede actualizar

Establezca el -Djdk.serialFilter=... de todo el JVM (la ruta afectada lo respeta), o establezca la opción de endpoint serializer en un serializador que no sea de Java, como StringRedisSerializer (como la opción serializer, no solo en un redisTemplate personalizado). Exija autenticación en Redis y restrinja quién puede publicar en los canales suscritos.

Descargo de responsabilidad

Este repositorio se publica con fines educativos y defensivos: para ayudar a los usuarios de Apache Camel a comprender la vulnerabilidad, verificar si se ven afectados y confirmar que la actualización la resuelve. La carga útil es un marcador benigno que no ejecuta ningún código. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta