
Reproductor para CVE-2026-46590: deserialización no segura del ciclo de vida de claves de Apache Camel camel-pqc (migración heredada de archivos .key de FileBasedKeyLifecycleManager mediante ObjectInputStream), remediación incompleta de CVE-2026-40048 (corregido en 4.18.3/4.21.0)
Reproductores de prueba de concepto ejecutables para la misma vulnerabilidad de Apache Camel, uno por entorno de ejecución:
| Runtime | Directorio | 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 (incluye Camel 4.20.0) |
Ambas son versiones afectadas (corregidas en 4.18.3 / 4.21.0) y demuestran el mismo defecto:
FileBasedKeyLifecycleManager persiste las claves post-cuánticas como JSON PKCS#8/X.509, pero sigue migrando los archivos de clave legacy
(serializados en Java) con un ObjectInputStream sin procesar y sin ObjectInputFilter — el
residuo de la corrección incompleta de CVE-2026-40048. getKey(keyId) recurre a migrateLegacyKey(), que
deserializa el archivo <keyId>.key plantado por el atacante; la conversión a KeyPair ocurre solo después de que readObject()
retorna, por lo que un objeto manipulado se ejecuta primero (CWE-502).
Cada subdirectorio es un proyecto autocontenido con su propio Dockerfile, docker-compose.yml y README. En
resumen, para cualquiera de los dos:
cd camel-spring-boot # or: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
Aviso: https://camel.apache.org/security/CVE-2026-46590.html
Estos reproductores se proporcionan únicamente para investigación de seguridad y pruebas autorizadas, para una vulnerabilidad divulgada públicamente y corregida. No los utilices contra sistemas sin permiso explícito.
| Propiedad | Valor |
|---|
| Componente | camel-pqc |
| Clase afectada | org.apache.camel.component.pqc.lifecycle.FileBasedKeyLifecycleManager#migrateLegacyKey (y migrateLegacyMetadata), junto con sus homólogos HashicorpVault / AwsSecretsManager |
| CWE | CWE-502 (Deserialización de datos no confiables) |
| Impacto | Ejecución de código en la aplicación de gestión de claves cuando se lee un valor de clave/metadatos legacy |
| Versiones afectadas | Desde 4.18.0 antes de 4.18.3, desde 4.19.0 antes de 4.21.0 (los gestores de claves de camel-pqc no existen antes de 4.16.0, por lo que 4.14.x no está afectada) |
| Versiones corregidas | 4.18.3, 4.21.0 |
| JIRA | CAMEL-23726 (PR apache/camel#23912, backport #23914) |
| Crédito | Yu Bao (PayPal) |