Saltar al contenido
DUPIN
ALERTAS · EN VIVO
Contacto

EXPLOIT PÚBLICO

CVE-2026-78165 Deserialización insegura de datos de Redis en Apache Camel Spring Redis

Vulnerabilidad de deserialización de datos no confiables en el componente Spring Redis de Apache Camel: RedisConfiguration.getSerializer creaba un JdkSerializationRedisSerializer sin filtro de objetos cuando no se configuraba serializador, y RedisConsumer.setBody lo aplicaba a los bytes de cada mensaje publicado en los canales suscritos antes de construir el Exchange. Esto permitía materializar un grafo de clases serializado arbitrario y ejecutar su método readObject. Afecta a Apache Camel desde 2.11.0 antes de…

Alerta de Nureq Monitor

Detectada 16 OCT · 16:44

CVSS 3.1

8.8ALTA

PROBABILIDAD DE EXPLOTACIÓN (EPSS)

0,8 % PERCENTIL 56

EXPLOTACIÓN ACTIVA

No confirmada

EXPLOIT PÚBLICO

Sí 1 REPOSITORIO

Qué es CVE-2026-78165

Vulnerabilidad de deserialización de datos no confiables en el componente Spring Redis de Apache Camel: RedisConfiguration.getSerializer creaba un JdkSerializationRedisSerializer sin filtro de objetos cuando no se configuraba serializador, y RedisConsumer.setBody lo aplicaba a los bytes de cada mensaje publicado en los canales suscritos antes de construir el Exchange. Esto permitía materializar un grafo de clases serializado arbitrario y ejecutar su método readObject. Afecta a Apache Camel desde 2.11.0 antes de…

Productos y versiones afectadas

  • Apache Software Foundation Apache Camel

    • desde 2.11.0 hasta antes de 4.18.5
    • desde 4.19.0 hasta antes de 4.22.1

Qué hacer

  1. Verificá si usás Apache Camel y en qué versión: el rango afectado figura arriba.
  2. Actualizá a la versión corregida que indique el fabricante en su aviso (ver referencias) o aplicá la mitigación que publique.
  3. Priorizá la corrección: hay código de explotación público, así que el riesgo de ataque es alto.
  4. Revisá registros y accesos de los sistemas expuestos para descartar que se haya aprovechado antes de corregir.

Exploits y pruebas de concepto públicas

Código publicado por terceros. Puede ser malicioso: revisalo solo en un entorno aislado.

Calculadora CVSS

CVSS 3.1 · 8.8 ALTA

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

VECTOR DE ATAQUE (AV)
Red
COMPLEJIDAD DEL ATAQUE (AC)
Baja
PRIVILEGIOS REQUERIDOS (PR)
Bajos
INTERACCIÓN DEL USUARIO (UI)
Ninguna
ALCANCE (S)
Sin cambio
CONFIDENCIALIDAD (C)
Alta
INTEGRIDAD (I)
Alta
DISPONIBILIDAD (A)
Alta

Abrir la calculadora completa

Descripción original

Deserialization of Untrusted Data vulnerability in Apache Camel Spring Redis component. This issue affects Apache Camel: from 2.11.0 before 4.18.5, from 4.19.0 before 4.22.1. RedisConfiguration.getSerializer lazily built a bare JdkSerializationRedisSerializer whenever no serializer option was configured, and that instance was used for every read the component performs. Spring's implementation delegates through DeserializingConverter to DefaultDeserializer, which reads the bytes with a ConfigurableObjectInputStream and installs no java.io.ObjectInputFilter on the stream, so an arbitrary serialized class graph was materialised and its readObject method executed. RedisConsumer.setBody applied that serializer to the raw bytes of every message published to the subscribed channels, before the Exchange was constructed and therefore before any route logic could inspect the message, so an actor able to issue PUBLISH on a subscribed channel reached the deserialization sink directly. The same default serializer backed the RedisTemplate built by RedisConfiguration.createDefaultTemplate, so the producer read commands GET, HGET, HGETALL and HVALS deserialized whatever was stored in the Redis keyspace, and SpringRedisIdempotentRepository shared that template. Configuring a custom redisTemplate did not close the consumer path, because RedisConsumer.setBody reads getSerializer directly rather than the serializer attached to the template, so a deployment that had wired a String serializer into its own template remained exposed on the consumer side unless it also set the serializer option. The component never constructed a java.io.ObjectInputStream itself, which is why earlier passes over the Camel codebase for unfiltered Java deserialization did not reach it. The behaviour dates back to the introduction of the component, first released in 2.11.0, and was unchanged until this fix. Users are recommended to upgrade to version 4.23.0, which fixes the issue. If users are on the 4.22.x releases stream, then they are suggested to upgrade to 4.22.1. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.5. The 4.14.x releases stream and earlier reached end of life before this issue was resolved and will not receive a fix, so deployments on those lines must move to a supported release. For deployments that cannot upgrade immediately, set the JVM-wide jdk.serialFilter system property, which the affected code path honours because it reads through a java.io.ObjectInputStream, for example -Djdk.serialFilter=!java.net.**;java.**;javax.**;org.apache.camel.**;!* ; or set the serializer endpoint option to a serializer that does not use Java serialization, such as StringRedisSerializer, noting that this must be set as the serializer option and not only on a custom redisTemplate. As defence in depth, require authentication on the Redis instance and restrict which clients may publish to the subscribed channels, and do not expose a Redis instance consumed by Camel to untrusted networks.

Referencias

Historial de la alerta

  1. EXPLOIT PÚBLICO Se publicó el repositorio oscerd/CVE-2026-78165.

CÓMO SE HIZOResumen traducido automáticamente al español a partir de la descripción original. Ante dudas, la descripción original y las referencias del fabricante son la fuente de verdad. Cómo funciona.