Severity by source
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
AV:N via HTTP responses and PR:N (no auth on Camel), but AC:H because a non-default config, MITM/backend control, and a classpath gadget chain are all required; full C/I/A on RCE.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
Lifecycle Timeline
6Blast Radius
ecosystem impact- 13 maven packages depend on org.apache.camel:camel-netty-http (5 direct, 8 indirect)
- 14 maven packages depend on org.apache.camel:camel-vertx-http (5 direct, 9 indirect)
Ecosystem-wide dependent count for version 4.0.0 and other introduced versions.
DescriptionCVE.org
Deserialization of Untrusted Data vulnerability in Apache Camel.
The camel-vertx-http component deserializes HTTP response bodies carrying the Content-Type application/x-java-serialized-object using a raw java.io.ObjectInputStream, without applying any ObjectInputFilter (VertxHttpHelper.deserializeJavaObjectFromStream) This deserialization path is reached only when the producer endpoint is configured with transferException=true (or the component-level allowJavaSerializedObject=true) and throwExceptionOnFailure is left at its default value of true; in that case a backend HTTP response with a 5xx status and the application/x-java-serialized-object content type has its body deserialized with no class restrictions. An attacker who controls the backend the Camel producer talks to - through a man-in-the-middle position on an unencrypted (plain HTTP) connection, or by compromising the backend service - can return a crafted serialized Java object and, if a suitable gadget chain is present on the classpath, achieve remote code execution on the Camel application host. The path is not reachable in the default configuration, where transferException is false. This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.20.0.
Users are recommended to upgrade to version 4.20.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.8. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.3. After upgrading, the deserialization performed by both helper utilities is constrained by a default ObjectInputFilter (allow-list java.;javax.;org.apache.camel.;!*), which can be customised through the new deserializationFilter endpoint option or the JVM-wide -Djdk.serialFilter system property. For deployments that cannot upgrade immediately: do not enable transferException=true (or allowJavaSerializedObject=true) on producers that talk to untrusted or network-reachable backends; ensure producer connections use TLS (https) so that a response cannot be substituted by a man-in-the-middle; and, where the option is required, set an explicit -Djdk.serialFilter allow-list (for example java.;org.apache.camel.**;!*) to constrain deserialization.
Articles & Coverage 1
AnalysisAI
Remote code execution in Apache Camel's camel-vertx-http component (4.0.0-4.14.7, 4.15.0-4.18.2, 4.19.0) arises when a producer endpoint deserializes 5xx HTTP response bodies marked application/x-java-serialized-object through a raw java.io.ObjectInputStream with no class filtering. Exploitation is limited to non-default deployments where transferException=true or allowJavaSerializedObject=true is set and throwExceptionOnFailure remains true, letting an attacker who controls or intercepts the backend deliver a malicious serialized object and, given a gadget chain on the classpath, run code on the Camel host. This is a vendor-reported (Apache) issue with a publicly available advisory; there is no public exploit identified at time of analysis and EPSS is low at 0.39% (31st percentile).
Technical ContextAI
The flaw is a classic Java deserialization weakness (CWE-502, Deserialization of Untrusted Data) in the Vert.x-based HTTP producer of Apache Camel, an enterprise integration framework used to route and mediate messages between systems. The specific sink is VertxHttpHelper.deserializeJavaObjectFromStream, which wraps an inbound response body in java.io.ObjectInputStream and calls readObject() without an ObjectInputFilter allow-list, so any serializable class present on the application classpath can be instantiated during deserialization. The affected artifact is Apache Camel (cpe:2.3:a:apache_software_foundation:apache_camel), and the danger materializes only when a suitable 'gadget chain' (e.g., from Commons-Collections, Spring, or similar libraries) is also on the classpath to convert object construction into code execution. The fix introduces a default filter (java.;javax.;org.apache.camel.**;!*), tunable via the deserializationFilter option or the JVM-wide -Djdk.serialFilter property.
RemediationAI
Vendor-released patch: upgrade to Apache Camel 4.20.0, which fixes the issue; users on the 4.14.x LTS stream should move to 4.14.8, and users on the 4.18.x stream should move to 4.18.3. After upgrading, deserialization in the helper utilities is constrained by a default ObjectInputFilter allow-list (java.;javax.;org.apache.camel.;!*), which you can tighten via the new deserializationFilter endpoint option or the JVM-wide -Djdk.serialFilter system property. For deployments that cannot upgrade immediately, do not enable transferException=true or allowJavaSerializedObject=true on producers that talk to untrusted or network-reachable backends (side effect: exceptions from the backend will no longer be transferred as serialized Java objects); ensure producer connections use TLS/https so a response body cannot be substituted by a man-in-the-middle (adds certificate management overhead); and where the serialized-object option is genuinely required, set an explicit allow-list such as -Djdk.serialFilter=java.;org.apache.camel.**;!* to block gadget classes (may break legitimate deserialization of application types outside the allow-list). Full guidance is in the advisory at https://camel.apache.org/security/CVE-2026-40859.html.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-502 – Deserialization of Untrusted Data
View allSame technique Deserialization
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-41824
GHSA-6qw3-4796-5984