Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-78163 — Reproductor de prueba de concepto ejecutable para CVE-2026-78163 en Apache Camel camel-docling, que demuestra SSRF y divulgación de archivos locales mediante una entrada de cuerpo String no validada, con un control de compilación corregida. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-78163
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y Educación
GitHuboscerd/cve-2026-78163

CVE-2026-78163

Reproductor de prueba de concepto ejecutable para CVE-2026-78163 en Apache Camel camel-docling, que demuestra SSRF y divulgación de archivos locales mediante una entrada de cuerpo String no validada, con un control de compilación corregida.

Ver Repositorio
2hace 4 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-78163 — camel-docling: fuente de entrada del cuerpo no validada (SSRF + divulgación de archivos locales)

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que DoclingProducer decidía qué significaba el cuerpo de un mensaje String inspeccionando su prefijo:

  • un cuerpo que comenzaba con http:// o https:// se entregaba a Docling como una URL remota que obtener (SSRF), y
  • un cuerpo que comenzaba con / (o contenía una barra invertida) se leía del sistema de archivos local (divulgación de archivos).

El modo se elegía de forma implícita, sin ninguna opción de endpoint para fijar una única interpretación y —a diferencia del espacio de nombres de cabeceras de Camel— el cuerpo del mensaje nunca se filtra mediante un HeaderFilterStrategy. Así, una ruta que significa "convierte cualquier texto que llegue en el cuerpo" se convertía silenciosamente en un obtenedor de recursos remotos o un lector de archivos locales siempre que el texto controlado por el atacante comenzara con uno de esos prefijos.

RuntimeDirectorioStackMuestra
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-docling 4.22.0 (afectado; corregido en 4.22.1)SSRF y divulgación de archivos, además del control con la compilación corregida
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-docling 3.29.0 (Camel 4.15.0, afectado)solo divulgación de archivos (ver nota)

Cobertura de versiones. El sumidero de divulgación de archivos locales existe desde que se introdujo camel-docling en 4.15.0; el sumidero de URL remota se añadió en 4.16.0 con soporte de docling-serve. La última versión de Camel Quarkus (3.29.0) incluye Camel 4.15.0, por lo que su módulo demuestra únicamente la divulgación de archivos. La corrección se distribuye en Camel 4.18.5 / 4.22.1 / 4.23.0; el módulo de Spring Boot ejecuta tanto la compilación afectada (4.22.0) como la compilación corregida (4.22.1), por lo que también demuestra el comportamiento parcheado. Ninguna versión publicada de Camel Quarkus incluye todavía un Camel corregido.

Qué demuestra

Ninguno de los reproductores necesita una instalación real de Docling: un pequeño CLI falso de docling (fake-docling/docling) sustituye al binario y hace visible lo que haría el real con la entrada proporcionada por el productor: obtener una URL o leer un archivo. Es benigno: solo repite lo que se le indicó procesar y registra su propia invocación. El punto del CVE es que un cuerpo proporcionado por el atacante llega a ese argumento, sin necesidad de habilitarlo explícitamente.

La aplicación Spring Boot también ejecuta un endpoint HTTP solo interno en 127.0.0.1:9099 (solo se publica el puerto 8080, por lo que un cliente externo no puede alcanzar 9099 directamente) y un archivo secreto local. El atacante solo envía texto:

  • SSRF: cuerpo http://127.0.0.1:9099/internal-secret → la invocación de docling del lado del servidor obtiene el endpoint interno y su secreto se devuelve al llamador.
  • Divulgación de archivos: cuerpo /tmp/cve-2026-78163-secret.txt → el archivo local se lee y se devuelve.

En la compilación afectada ambas tienen éxito; en la compilación corregida ambas se rechazan con una IllegalArgumentException que nombra la opción (allowUrlSource / allowFilePathSource) que sería necesaria para habilitarlas, y docling nunca se invoca.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Salida esperada en la compilación de Spring Boot afectada:

[1] SSRF — sending body = http://127.0.0.1:9099/internal-secret
>>> PROVEN SSRF: the server-side docling invocation fetched the attacker-controlled internal URL.
>>>   internal victim saw: [GET /internal-secret]
>>>   content returned to the caller:
      | INTERNAL-SECRET-DATA (only reachable from inside the deployment)

[2] File disclosure — sending body = /tmp/cve-2026-78163-secret.txt
>>> PROVEN file disclosure: the attacker-named local file was read and returned.
      | TOP-SECRET-FILE-CONTENT (local file an attacker should not be able to read)

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-docling (camel-docling-starter / camel-quarkus-docling)
CWECWE-918 (SSRF), CWE-22 (Path Traversal), CWE-200 (Exposición de información)
GravedadMEDIA
Vector de ataqueUn cuerpo de mensaje String reenviado a un endpoint de docling, cuyo prefijo selecciona un sink de obtención de URL o de lectura de archivos; el cuerpo no está sujeto a HeaderFilterStrategy
ImpactoObtención del lado del servidor de URL elegidas por el atacante (servicios internos) y divulgación de archivos locales
Versiones afectadasDesde 4.15.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1 (divulgación de archivos desde 4.15.0; sink de URL desde 4.16.0)
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24422
CréditoLi Zhiyao (BUPT)

Aviso: https://camel.apache.org/security/CVE-2026-78163.html

La corrección

Un cuerpo String ahora se trata como el propio documento de forma predeterminada. Las dos interpretaciones de ubicación pasaron a ser opcionales mediante nuevas opciones de endpoint allowUrlSource y allowFilePathSource (ambas con valor predeterminado false); un cuerpo que parezca una URL o una ruta se rechaza en caso contrario con una IllegalArgumentException que nombra la opción que lo habilitaría. Una opción adicional inputBaseDirectory confina las rutas de entrada locales a un directorio configurado. Los cuerpos tipados (File, byte[], InputStream) y la cabecera CamelDoclingInputFilePath ya declaran su significado y no están restringidos (pero siguen sujetos a inputBaseDirectory).

Mitigación si no puede actualizar

No enrute cuerpos de mensajes de origen externo a un endpoint de docling; pase el documento mediante un cuerpo tipado (File, byte[], InputStream) o la cabecera CamelDoclingInputFilePath para que el cuerpo nunca esté sujeto a la interpretación de prefijos.

Descargo de responsabilidad

Este repositorio se publica con fines educativos y defensivos: para ayudar a los usuarios de Apache Camel a comprender la vulnerabilidad, verificar si se ven afectados y confirmar que la actualización la resuelve. La CLI docling falsa y los "secretos" son fixtures locales inertes. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta