CVE-2026-78162
Vulnerabilidad de deserialización de datos no confiables en Apache Camel.
Este problema afecta a Apache Camel: desde la 4.0.0 hasta antes de la 4.18.5, y desde la 4.19.0 hasta antes de la 4.22.1.
El componente camel-hazelcast aplica un JavaSerializationFilterConfig de Hazelcast por defecto a las instancias que crea a partir de su propia configuración, una protección introducida por CVE-2026-43865. Ese cambio no llegó a dos de las rutas de configuración que Camel construye por sí mismo, por lo que esas rutas seguían creando instancias de Hazelcast cuya deserialización Java no estaba restringida.
Leer descripción completaMostrar menos
ReplicatedHazelcastAggregationRepository extiende HazelcastAggregationRepository pero sobrescribe doStart() sin llamar a super.doStart(), manteniendo su propia copia del bloque de arranque, y por tanto nunca recibió el filtro: una ruta que lo usa sin proporcionar un hazelcastInstance arranca un miembro de Hazelcast que deserializa los valores leídos del ReplicatedMap de respaldo sin ninguna restricción de clases. HazelcastDefaultComponent#getOrCreateHzClientInstance() construye su propio ClientConfig cuando se selecciona hazelcastMode=client y no se proporciona ni un ClientConfig referenciado ni hazelcastConfigUri; asimismo, tampoco aplicaba filtro alguno, de modo que los endpoints en modo cliente se comportaban de forma distinta a los endpoints en modo nodo para una configuración por lo demás idéntica. En ambos casos, un atacante capaz de publicar en el clúster de Hazelcast al que está conectada la instancia afectada puede hacer que un objeto Java serializado de su elección sea deserializado dentro de la propia capa de serialización de Hazelcast, antes de que Camel procese el intercambio, lo que resulta en ejecución remota de código. Los clústeres de Hazelcast no tienen habilitados por defecto ni la autenticación ni TLS. Elegir el modo cliente es una decisión de topología y no una opción de seguridad, por lo que ninguna de las dos rutas requería que el despliegue optara por un comportamiento inseguro.
Se recomienda a los usuarios actualizar a la versión 4.23.0, que corrige el problema. Si los usuarios están en la serie de versiones 4.22.x, se les sugiere actualizar a la 4.22.1. Si están en la serie 4.18.x, se les sugiere actualizar a la 4.18.5. Las series 4.14.x y anteriores llegaron al fin de su vida útil antes de que se resolviera este problema y no recibirán corrección, por lo que los despliegues en esas series deben migrar a una versión soportada. Para los despliegues que no puedan actualizar de inmediato, proporcionen una configuración explícita de Hazelcast que incluya un JavaSerializationFilterConfig, o inyecten una HazelcastInstance ya construida, ya que Camel nunca sobrescribe una configuración suministrada por el usuario. Alternativamente, configuren el filtro a nivel de JVM -Djdk.serialFilter=!java.net.;java.;javax.;org.apache.camel.;!* y habiliten la autenticación de clúster y TLS en Hazelcast para restringir quién puede llegar al clúster.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 10
- Versión
- 4.0
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 1.26 %
- Percentil entre todas las CVEs puntuadas
- 69
- Fecha de la puntuación
- 20/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Exploits públicos
Hay código de explotación o plantillas de detección públicos. No es lo mismo que explotación activa confirmada (KEV), pero aumenta el riesgo: parchee con prioridad.
- Prueba de concepto en GitHub (no verificada) · Lista de pruebas de concepto en GitHub
⚠️ Las pruebas de concepto de GitHub no están verificadas: algunas son falsas o contienen malware. No las ejecute nunca fuera de un laboratorio aislado.
Técnicas ATT&CK
Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.
- Explotación
T1190Exploit Public-Facing Applicationinitial access85 % - Impacto principal
T1059Command and Scripting Interpreterexecution75 %
Deserialización Java sin filtro en Hazelcast lleva a ejecución remota de código; el vector AV:N/PR:N/UI:N indica acceso de red sin privilegios ni interacción.
Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.
Mitigaciones ATT&CK que cubren estas técnicas
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
CWE
- CWE-502
Referencias
Mostrar las 8 referencias
- https://camel.apache.org/security/CVE-2026-43865.html
- https://camel.apache.org/security/CVE-2026-78162.html
- https://github.com/apache/camel/pull/25566
- https://github.com/apache/camel/pull/25595
- https://github.com/apache/camel/pull/25599
- https://github.com/apache/camel/pull/25600
- https://issues.apache.org/jira/browse/CAMEL-24413
- https://issues.apache.org/jira/browse/CAMEL-24420
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-78162",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-78162",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "total"
}
],
"version": "2.0.3",
"timestamp": "2026-10-19T00:00:00+00:00"
}
}
],
"cvssMetricV40": [
{
"type": "Secondary",
"source": "security@apache.org",
"cvssData": {
"Safety": "NOT_DEFINED",
"version": "4.0",
"Recovery": "NOT_DEFINED",
"baseScore": 10,
"Automatable": "NOT_DEFINED",
"attackVector": "NETWORK",
"baseSeverity": "CRITICAL",
"valueDensity": "NOT_DEFINED",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"exploitMaturity": "NOT_DEFINED",
"providerUrgency": "NOT_DEFINED",
"userInteraction": "NONE",
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"privilegesRequired": "NONE",
"subIntegrityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH",
"integrityRequirement": "NOT_DEFINED",
"modifiedAttackVector": "NOT_DEFINED",
"subAvailabilityImpact": "HIGH",
"vulnAvailabilityImpact": "HIGH",
"availabilityRequirement": "NOT_DEFINED",
"modifiedUserInteraction": "NOT_DEFINED",
"modifiedAttackComplexity": "NOT_DEFINED",
"subConfidentialityImpact": "HIGH",
"vulnConfidentialityImpact": "HIGH",
"confidentialityRequirement": "NOT_DEFINED",
"modifiedAttackRequirements": "NOT_DEFINED",
"modifiedPrivilegesRequired": "NOT_DEFINED",
"modifiedSubIntegrityImpact": "NOT_DEFINED",
"modifiedVulnIntegrityImpact": "NOT_DEFINED",
"vulnerabilityResponseEffort": "NOT_DEFINED",
"modifiedSubAvailabilityImpact": "NOT_DEFINED",
"modifiedVulnAvailabilityImpact": "NOT_DEFINED",
"modifiedSubConfidentialityImpact": "NOT_DEFINED",
"modifiedVulnConfidentialityImpact": "NOT_DEFINED"
}
}
]
},
"affected": [
{
"source": "security@apache.org",
"affectedData": [
{
"vendor": "Apache Software Foundation",
"product": "Apache Camel",
"versions": [
{
"status": "affected",
"version": "4.0.0",
"lessThan": "4.18.5",
"versionType": "maven"
},
{
"status": "affected",
"version": "4.19.0",
"lessThan": "4.22.1",
"versionType": "maven"
},
{
"status": "unaffected",
"version": "4.18.5",
"versionType": "maven"
},
{
"status": "unaffected",
"version": "4.22.1",
"versionType": "maven"
},
{
"status": "unaffected",
"version": "4.23.0",
"versionType": "maven"
}
],
"packageURL": "pkg:maven/org.apache.camel/camel-hazelcast",
"packageName": "org.apache.camel:camel-hazelcast",
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-10-19T11:17:19.037",
"references": [
{
"url": "https://camel.apache.org/security/CVE-2026-43865.html",
"source": "security@apache.org"
},
{
"url": "https://camel.apache.org/security/CVE-2026-78162.html",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25566",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25595",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25599",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25600",
"source": "security@apache.org"
},
{
"url": "https://issues.apache.org/jira/browse/CAMEL-24413",
"source": "security@apache.org"
},
{
"url": "https://issues.apache.org/jira/browse/CAMEL-24420",
"source": "security@apache.org"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "security@apache.org",
"description": [
{
"lang": "en",
"value": "CWE-502"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Deserialization of Untrusted Data vulnerability in Apache Camel.\n\n\n\nThis issue affects Apache Camel: from 4.0.0 before 4.18.5, from 4.19.0 before 4.22.1.\n\n\n\nThe camel-hazelcast component applies a default Hazelcast JavaSerializationFilterConfig to the instances it creates from its own configuration, a protection introduced by CVE-2026-43865. That change did not reach two of the configuration paths Camel builds itself, so those paths continued to create Hazelcast instances whose Java deserialization is unrestricted. ReplicatedHazelcastAggregationRepository extends HazelcastAggregationRepository but overrides doStart() without calling super.doStart(), keeping its own copy of the bootstrap block, and therefore never received the filter: a route using it without supplying a hazelcastInstance starts a Hazelcast member that deserializes values read from the backing ReplicatedMap with no class restriction. HazelcastDefaultComponent#getOrCreateHzClientInstance() builds its own ClientConfig when hazelcastMode=client is selected and neither a referenced ClientConfig nor hazelcastConfigUri is supplied, and likewise applied no filter, so client-mode endpoints behaved differently from node-mode endpoints for an otherwise identical configuration. In both cases an attacker able to publish into the Hazelcast cluster that the affected instance is attached to can cause a serialized Java object of their choosing to be deserialized inside Hazelcast's own serialization layer, before Camel processes the exchange, resulting in remote code execution. Hazelcast clusters have neither authentication nor TLS enabled by default. Selecting client mode is a topology choice rather than a security option, so neither path required the deployment to opt in to unsafe behaviour.\n\n\n\nUsers are recommended to upgrade to version 4.23.0, which fixes the issue. If users are on the 4.22.x releases stream, then they are suggested to upgrade to 4.22.1. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.5. The 4.14.x releases stream and earlier reached end of life before this issue was resolved and will not receive a fix, so deployments on those lines must move to a supported release. For deployments that cannot upgrade immediately, supply an explicit Hazelcast configuration carrying a JavaSerializationFilterConfig, or inject a pre-built HazelcastInstance, since a user-supplied configuration is never overwritten by Camel. Alternatively set the JVM-wide filter -Djdk.serialFilter=!java.net.;java.;javax.;org.apache.camel.;!* and enable Hazelcast cluster authentication and TLS to restrict who can reach the cluster."
}
],
"lastModified": "2026-10-20T04:17:02.327",
"sourceIdentifier": "security@apache.org"
}