
Reproducer für CVE-2026-46590: Unsichere Deserialisierung des Schlüssellebenszyklus in Apache Camel camel-pqc (FileBasedKeyLifecycleManager Legacy-.key-Migration über ObjectInputStream), unvollständige Behebung von CVE-2026-40048 (behoben in 4.18.3/4.21.0)
| Laufzeitumgebung | Verzeichnis | Stack |
|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-pqc 4.18.2 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (bündelt Camel 4.20.0) |
Beide sind betroffene Versionen (behoben in 4.18.3 / 4.21.0), und beide demonstrieren denselben Fehler:
FileBasedKeyLifecycleManager speichert Post-Quanten-Schlüssel als PKCS#8/X.509-JSON, migriert aber weiterhin Legacy-
(Java-serialisierte) Schlüsseldateien mit einem rohen ObjectInputStream und ohne ObjectInputFilter zurück — der
unvollständige Behebungsrest von CVE-2026-40048. getKey(keyId) fällt auf migrateLegacyKey() zurück, das
die vom Angreifer platzierte <keyId>.key-Datei deserialisiert; die Umwandlung in KeyPair erfolgt erst nachdem
readObject() zurückkehrt, sodass ein manipuliertes Objekt zuerst ausgeführt wird (CWE-502).
Jedes Unterverzeichnis ist ein eigenständiges Projekt mit eigenem Dockerfile, eigener docker-compose.yml und eigener README. Kurz
gesagt, für beide:
cd camel-spring-boot # oder: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| Eigenschaft | Wert |
|---|---|
| Komponente | camel-pqc |
| Betroffene Klasse | org.apache.camel.component.pqc.lifecycle.FileBasedKeyLifecycleManager#migrateLegacyKey (und migrateLegacyMetadata), sowie die HashicorpVault- / AwsSecretsManager-Gegenstücke |
| CWE | CWE-502 (Deserialisierung nicht vertrauenswürdiger Daten) |
| Auswirkung | Codeausführung in der Schlüsselverwaltungsanwendung, wenn ein Legacy-Schlüssel-/Metadatenwert gelesen wird |
| Betroffene Versionen | Von 4.18.0 vor 4.18.3, von 4.19.0 vor 4.21.0 (camel-pqc-Schlüsselverwaltungen existieren vor 4.16.0 nicht, daher ist 4.14.x nicht betroffen) |
| Behobene Versionen | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23726 (PR apache/camel#23912, Backport #23914) |
| Anerkennung | Yu Bao (PayPal) |
Diese Reproduktoren werden ausschließlich für Sicherheitsforschung und autorisierte Tests bereitgestellt, für eine öffentlich offengelegte und behobene Schwachstelle. Verwenden Sie sie nicht gegen Systeme ohne ausdrückliche Genehmigung.