CVE-2026-78165
Received Received - Intake

Deserialization Flaw in Apache Camel Spring Redis

Vulnerability report for CVE-2026-78165, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-10-19

Last updated on: 2026-10-19

Assigner: Apache Software Foundation

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-10-19
Last Modified
2026-10-19
Generated
2026-10-19
AI Q&A
2026-10-19
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
Apache Software Foundation Apache Camel 2.11.0
Apache Software Foundation Apache Camel 4.19.0

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-502 The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a deserialization of untrusted data issue in Apache Camel's Spring Redis component. It occurs because the default JDK serializer (JdkSerializationRedisSerializer) lacks a deserialization filter, allowing arbitrary serialized class graphs to be materialized and executed. This can lead to remote code execution if an attacker publishes malicious payloads to a subscribed Redis channel.

Detection Guidance

Detecting this vulnerability requires checking Apache Camel Spring Redis component versions and configuration. Use commands like 'mvn dependency:tree | grep camel-spring-redis' to verify the component version. Check if the serializer option is set to a non-Java serializer like StringRedisSerializer. Inspect Redis channel access controls and authentication settings.

Impact Analysis

An attacker who can publish to a Redis channel subscribed by the Camel component could execute arbitrary code on the system running Apache Camel. This includes accessing sensitive data, modifying system behavior, or launching further attacks. The impact is high as it affects both consumer and producer paths, including RedisTemplate and SpringRedisIdempotentRepository.

Compliance Impact

This vulnerability could lead to unauthorized data access or modification, violating GDPR's data protection principles and HIPAA's security requirements for protected health information. Organizations using affected versions may face compliance violations if exploited, potentially resulting in legal penalties or data breaches.

Mitigation Strategies

Upgrade to Apache Camel 4.23.0, 4.22.1, or 4.18.5. If immediate upgrade is not possible, set the JVM property -Djdk.serialFilter=!java.net.**;java.**;javax.**;org.apache.camel.**;!* or configure the serializer endpoint option to StringRedisSerializer. Restrict Redis access to trusted clients and require authentication.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-78165. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart