CVE Tools

CVE-2026-78165

Apache Camel: Camel-Spring-Redis Unfiltered Java Deserialization of Redis Payloads

No known exploitation. EPSS puts it in the 54th percentile. Fixed versions are out.

Check it yourself

OpenVAS · 1 check

e.g. OID 1.3.6.1.4.1.25623.1.0.192198

Run the check

Published Updated Sources: CVE.org, NVD

What to do

Find your product and version, then upgrade to the build on the right.

  • Apache Software Foundation Apache CamelAffected: ≥ 2.11.0, < 4.18.5Upgrade to: 4.18.5Affected: ≥ 4.19.0, < 4.22.1Upgrade to: 4.22.1Fixed builds4.23.0Stated by: CVE record

Versions as the sources state them. Full version matrix after sign-in

Steps

Written by AI from the record
  1. Check whether your application uses the Apache Camel Spring Redis component (camel-spring-redis) to consume or produce Redis messages.
  2. Confirm which Camel version you run — versions from 2.11.0 up to 4.18.5 and from 4.19.0 up to 4.22.1 are affected.
  3. Upgrade to Apache Camel 4.23.0 (or 4.22.1 if you're on the 4.22.x stream, or 4.18.5 if you're on the 4.18.x stream).
  4. If you're on 4.14.x or earlier, move to a supported release — that line will not get a fix.
  5. If you can't upgrade immediately, set the serializer endpoint option to a non-Java serializer such as StringRedisSerializer, or apply the JVM-wide jdk.serialFilter restriction described by the vendor.
  6. Make sure your Redis instance requires authentication and is not reachable from untrusted networks or clients.

What it is

From the CVE record

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.

In plain language

Written by AI from the record

If your business uses Apache Camel to connect to Redis, a flaw lets an attacker who can send messages to that Redis channel take over the application; it's not currently being actively exploited, but you should update soon (fixed in 4.18.5, 4.22.1, or 4.23.0).

Unauthenticated/low-privilege Java deserialization (CWE-502) in Apache Camel's camel-spring-redis component, where RedisConsumer feeds raw PUBLISH payloads into an unfiltered JdkSerializationRedisSerializer before any route logic runs, allowing arbitrary class instantiation and code execution for any actor able to publish to a subscribed Redis channel.

If you're affected

  • Full application takeover
  • Remote code execution
  • Customer data exposure
  • Operational disruption

Exploitation

Where each signal puts this CVE on the scale from published to confirmed exploited.

EPSS54th
CISA KEV

Not in the catalog. CISA has not confirmed exploitation.

Public exploits

No public exploit or proof of concept found in the sources we track.

EPSS

0.7% chance of exploitation activity in the next 30 days, which ranks it in the 54th percentile of scored CVEs.

Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.

Lifecycle

19 events over 3 days, from the signal feeds we watch.

  1. OpenVAS check added
  2. Patch availablepatch available, workaround available, workaround available, record updated, record updated
  3. Patch availablepatch available, patch available, workaround available, workaround available, workaround available, published, weakness classified, att&ck mapped, record updated, record updated, record updated

Affected products

Technical detail

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

Scored 8.8 by NVD.

How it is reached

  • Attack Vector NetworkExploitable remotely over the network without any special conditions
  • Attack Complexity LowNo special conditions — the attack can be reliably reproduced
  • Privileges Required LowRequires basic user-level privileges
  • User Interaction NoneNo user interaction needed — fully automated exploitation

Scope

  • Scope UnchangedImpact is limited to the vulnerable component itself

Impact if exploited

  • Confidentiality HighTotal information disclosure — all data in the component is compromised
  • Integrity HighTotal loss of integrity — attacker can modify any data in the component
  • Availability HighTotal denial of service — the component is completely unavailable

Weaknesses

ATT&CK techniques

Mapped from the weaknesses above (CWE to ATT&CK), not observed in attacks.

Sources

Watch the software you run.

My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.

We'll flag the next CVE, public exploit or patch for Apache Camel, not every advisory.