Apache Camel PQC: Unsafe Deserialization from FileBasedKeyLifecycleManager
Title source: cnaExploitation Summary
EIP tracks 2 public exploits for CVE-2026-40048. PoCs published by oscerd.
AI-analyzed exploit summary This repository contains a functional exploit for CVE-2026-46590, demonstrating an unsafe deserialization vulnerability in Apache Camel's `FileBasedKeyLifecycleManager` (camel-pqc component). The PoC plants a malicious legacy key file that, when migrated via `ObjectInputStream.readObject()`, triggers a CommonsCollections6 gadget chain leading to arbitrary command execution.
Description
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.
Exploits (2)
This repository contains a functional exploit for CVE-2026-46590, demonstrating an unsafe deserialization vulnerability in Apache Camel's `FileBasedKeyLifecycleManager` (camel-pqc component). The PoC plants a malicious legacy key file that, when migrated via `ObjectInputStream.readObject()`, triggers a CommonsCollections6 gadget chain leading to arbitrary command execution.
This repository provides a functional proof-of-concept for CVE-2026-40048, a Java deserialization vulnerability in Apache Camel's `FileBasedKeyLifecycleManager` (camel-pqc component). The exploit demonstrates how an attacker with write access to the key directory can achieve remote code execution by planting a malicious serialized object that is deserialized without proper filtering.
References (5)
Scores
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H