CVE-2026-78163
Vulnerabilidad de Server-Side Request Forgery (SSRF), de limitación inadecuada de una ruta a un directorio restringido ('Path Traversal') y de exposición de información sensible a un actor no autorizado en el componente Docling de Apache Camel.
Este problema afecta a Apache Camel: desde la 4.15.0 anterior a la 4.18.5, desde la 4.19.0 anterior a la 4.22.1.
DoclingProducer decidía qué significaba el cuerpo de un mensaje de tipo String inspeccionando su prefijo.
Leer descripción completaMostrar menos
Un cuerpo que empezaba por http:// o https:// se entregaba a Docling como una URL remota que descargar; un cuerpo que empezaba por / o que contenía una barra invertida se leía del sistema de archivos local; y cualquier otro se escribía en un archivo temporal y se convertía como contenido de documento. El modo se elegía de forma implícita y ninguna opción del endpoint permitía al autor de la ruta fijar el componente a una única interpretación, de modo que una ruta que pretendía convertir cualquier texto recibido en el cuerpo se convertía silenciosamente en un descargador de recursos remotos o en un lector de archivos locales siempre que el texto empezara por uno de esos prefijos. La única comprobación aplicada al valor derivado era una verificación de tamaño, y esa verificación estaba envuelta en una comprobación de existencia, así que una ruta que no resolvía a nada, o a un pseudoarchivo que informaba de un tamaño de cero, pasaba sin comprobarse en absoluto. Cinco puntos de llamada llegaban a los dos sumideros: el modo CLI añadía el valor como último argumento posicional del subproceso docling, y el modo docling-serve lo pasaba bien a HttpSource para que el backend lo descargara, bien a Files.readAllBytes para codificar el contenido en base64 y subirlo. Como el cuerpo del intercambio nunca es filtrado por un HeaderFilterStrategy, a diferencia del espacio de nombres de cabeceras de Camel, un remitente capaz de introducir texto en un mensaje que una ruta reenvía a un endpoint de docling podía alcanzar ambos sumideros sin ninguna opción activada por el despliegue.
Se recomienda a los usuarios actualizar a la versión 4.23.0, que corrige el problema. Si los usuarios están en la línea de versiones 4.22.x, se les sugiere actualizar a la 4.22.1. Si están en la línea 4.18.x, se les sugiere actualizar a la 4.18.5. Las líneas de versiones 4.14.x y anteriores llegaron al final de su vida útil antes de que este problema se resolviera y no recibirán corrección, por lo que los despliegues en esas líneas deben migrar a una versión soportada. Para los despliegues que no puedan actualizar de inmediato, no encaminen a un endpoint de docling cuerpos de mensaje que se originen fuera del despliegue, y pasen el documento mediante un cuerpo tipado como File, byte[] o InputStream, o mediante la cabecera CamelDoclingInputFilePath, de modo que el cuerpo nunca quede sujeto a la interpretación de prefijos.
Traducción automática del texto original de NVD (en inglés).
CVSS
- Puntuación base
- 5.9
- Versión
- 3.1
- Vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.42 %
- Percentil entre todas las CVEs puntuadas
- 35
- 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 access90 % - Impacto principal
T1005Data from Local Systemcollection85 % - Impacto secundario
T1090Proxycommand and control80 %
Vector AV:N/PR:N/UI:N: el cuerpo del mensaje con prefijo http(s):// se trata como URL remota (SSRF) y con / o barra invertida como fichero local (path traversal, C:H).
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-22, CWE-200, CWE-918
Referencias
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-78163",
"cveTags": [],
"metrics": {
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-78163",
"role": "CISA Coordinator",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2026-10-19T18:47:11.066796Z"
}
}
],
"cvssMetricV31": [
{
"type": "Secondary",
"source": "security@apache.org",
"cvssData": {
"scope": "UNCHANGED",
"version": "3.1",
"baseScore": 5.9,
"attackVector": "NETWORK",
"baseSeverity": "MEDIUM",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N",
"integrityImpact": "NONE",
"userInteraction": "NONE",
"attackComplexity": "HIGH",
"availabilityImpact": "NONE",
"privilegesRequired": "NONE",
"confidentialityImpact": "HIGH"
},
"impactScore": 3.6,
"exploitabilityScore": 2.2
}
]
},
"affected": [
{
"source": "security@apache.org",
"affectedData": [
{
"vendor": "Apache Software Foundation",
"product": "Apache Camel",
"versions": [
{
"status": "affected",
"version": "4.15.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-docling",
"packageName": "org.apache.camel:camel-docling",
"collectionURL": "https://repo.maven.apache.org/maven2",
"defaultStatus": "unaffected"
}
]
}
],
"published": "2026-10-19T11:17:19.233",
"references": [
{
"url": "https://camel.apache.org/security/CVE-2026-78163.html",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25596",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25733",
"source": "security@apache.org"
},
{
"url": "https://github.com/apache/camel/pull/25744",
"source": "security@apache.org"
},
{
"url": "https://issues.apache.org/jira/browse/CAMEL-24422",
"source": "security@apache.org"
}
],
"vulnStatus": "Awaiting Analysis",
"weaknesses": [
{
"type": "Secondary",
"source": "security@apache.org",
"description": [
{
"lang": "en",
"value": "CWE-22"
},
{
"lang": "en",
"value": "CWE-200"
},
{
"lang": "en",
"value": "CWE-918"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Server-Side Request Forgery (SSRF), Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal') and Exposure of Sensitive Information to an Unauthorized Actor vulnerability in Apache Camel Docling component.\n\n\n\nThis issue affects Apache Camel: from 4.15.0 before 4.18.5, from 4.19.0 before 4.22.1.\n\n\n\nDoclingProducer decided what a String message body meant by inspecting its prefix. A body starting with http:// or https:// was handed to Docling as a remote URL to fetch, a body starting with / or containing a backslash was read from the local filesystem, and anything else was written to a temporary file and converted as document content. The mode was chosen implicitly and no endpoint option allowed a route author to pin the component to a single interpretation, so a route that means convert whatever text arrives in the body silently became a fetcher of remote resources or a reader of local files whenever the text happened to begin with one of those prefixes. The only guard applied to the derived value was a size check, and that check was wrapped in an existence test, so a path that resolved to nothing, or to a pseudo-file reporting a size of zero, passed without being checked at all. Five call sites reached the two sinks: the CLI mode appended the value as the final positional argument of the docling subprocess, and the docling-serve mode passed it either to HttpSource for the backend to fetch or to Files.readAllBytes so that the content could be base64-encoded and uploaded. Because the exchange body is never filtered by a HeaderFilterStrategy, unlike the Camel header namespace, a sender able to place text in a message that a route forwards into a docling endpoint could reach both sinks without any opt-in from the deployment.\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, do not route message bodies that originate outside the deployment into a docling endpoint, and pass the document through a typed body such as File, byte[] or InputStream, or through the CamelDoclingInputFilePath header, so that the body is never subject to prefix interpretation."
}
],
"lastModified": "2026-10-19T20:45:51.597",
"sourceIdentifier": "security@apache.org"
}