CVE-2026-40048
Camel-PQC: Unsafe Deserialization from FileBasedKeyLifecycleManager
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.
Mitigation
Credit
This issue was discovered by Andrea Cosentino from Apache Software Foundation and Venkatraman Kumar from Securin
Notes
The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-23200 refers to the various commits that resolved the issue, and have more details.