Skip to main content

Apache Camel CVE-2026-40048

| EUVDEUVD-2026-25790 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-04-27 security@apache.org GHSA-v3vg-332r-mw99
7.8
CVSS 3.1 · Vendor: apache
Share

Severity by source

Vendor (apache) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
7.8 HIGH

Attacker needs local write access to the key directory (AV:L, PR:L); once a malicious file is placed, deserialization reliably yields full code execution (C/I/A:H).

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Red Hat
7.8 HIGH
qualitative

Primary rating from Vendor (apache).

CVSS VectorVendor: apache

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

6
Analysis Generated
Jul 24, 2026 - 02:07 vuln.today
Patch released
Apr 28, 2026 - 19:43 nvd
Patch available
CVSS changed
Apr 27, 2026 - 16:22 NVD
7.8 (None) 7.8 (HIGH)
Patch available
Apr 27, 2026 - 10:01 EUVD
EUVD ID Assigned
Apr 27, 2026 - 09:22 euvd
EUVD-2026-25790
CVE Published
Apr 27, 2026 - 09:16 nvd
HIGH 7.8

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 5 maven packages depend on org.apache.camel:camel-pqc (3 direct, 2 indirect)

Ecosystem-wide dependent count for version 4.18.2.

DescriptionCVE.org

The Camel-PQC FileBasedKeyLifecycleManager class deserializes the contents of <keyId>.key files in the configured key directory using java.io.ObjectInputStream without applying any ObjectInputFilter or class-loading restrictions. The cast to java.security.KeyPair is evaluated only after readObject() has already returned, so any readObject() side effects in the deserialized object run before the type check. An attacker who can write to the key directory used by a Camel application - for example through a path traversal into the directory, misconfigured filesystem permissions on the volume where keys are stored, a compromised key provisioning pipeline, or a symlink attack - can place a crafted serialized Java object that, when deserialized during normal key lifecycle operations, results in arbitrary code execution in the context of the application.

This issue affects Apache Camel: from 4.19.0 before 4.20.0, from 4.18.0 before 4.18.2.

Users are recommended to upgrade to version 4.20.0, which fixes the issue by replacing java.io.ObjectInputStream-based key and metadata storage with standard PKCS#8 (private key) / X.509 SubjectPublicKeyInfo (public key) Base64 JSON encoding. For users on the 4.18.x LTS releases stream, upgrade to 4.18.2.

AnalysisAI

Arbitrary code execution in Apache Camel's PQC component (camel-pqc) arises because FileBasedKeyLifecycleManager deserializes <keyId>.key files with java.io.ObjectInputStream and no ObjectInputFilter or class allow-listing. Because the KeyPair cast happens only after readObject() returns, malicious gadget-chain side effects execute before any type check, letting an attacker who can plant a crafted serialized object in the key directory run code as the application. It affects Camel 4.19.0 before 4.20.0 and 4.18.0 before 4.18.2, carries CVSS 7.8, and has no public exploit identified at time of analysis; EPSS is very low at 0.07%.

Technical ContextAI

The flaw is a classic Java deserialization weakness (CWE-502) in the camel-pqc integration component, which manages post-quantum/asymmetric key material on disk. FileBasedKeyLifecycleManager reads each <keyId>.key file straight into an ObjectInputStream and calls readObject() expecting a java.security.KeyPair, but ObjectInputStream reconstructs whatever class the byte stream names, invoking that class's readObject()/readResolve() and finalizer logic during reconstruction - well before the (KeyPair) cast can reject it. With a suitable gadget chain on the classpath (e.g. Commons-Collections, Spring, or other libraries common in Camel deployments), this reconstruction yields code execution. CPE data scopes the issue to cpe:2.3:a:apache:camel across the listed 4.18.x/4.19.x ranges. Version 4.20.0 removes ObjectInputStream entirely, storing keys as PKCS#8 (private) and X.509 SubjectPublicKeyInfo (public) in Base64 JSON, which is not code-bearing.

RemediationAI

Vendor-released patch: upgrade to Apache Camel 4.20.0, or 4.18.2 on the 4.18.x LTS stream; these replace ObjectInputStream-based key/metadata storage with PKCS#8 and X.509 SubjectPublicKeyInfo Base64 JSON encoding, eliminating the deserialization path (see https://camel.apache.org/security/CVE-2026-40048.html). Note that after upgrading, existing serialized .key files are in the old format, so plan for key re-provisioning/migration to the new encoding. Where immediate patching is not possible, reduce exposure by restricting filesystem permissions on the configured key directory so only the Camel process account can write to it, mounting that volume without attacker-writable paths, and disabling symlink following to blunt the symlink and path-traversal vectors; audit any key-provisioning pipeline that feeds the directory. As a hardening measure, deploy a JVM-wide serialization filter (jdk.serialFilter / ObjectInputFilter) to reject unexpected classes - the trade-off is potential breakage if other components rely on Java serialization, so test before rolling out. Red Hat customers should track https://access.redhat.com/security/cve/CVE-2026-40048 for downstream fixed builds.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

Share

CVE-2026-40048 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy