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-78164 — Prueba de concepto ejecutable para CVE-2026-78164, que demuestra la filtración de secretos cuando los productores HTTP de Apache Camel resuelven marcadores de posición de propiedades en encabezados CamelHttpUri proporcionados por el atacante. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-78164
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebExfiltración de DatosRecopilación de InformaciónAprendizaje y Educación
GitHuboscerd/cve-2026-78164

CVE-2026-78164

Prueba de concepto ejecutable para CVE-2026-78164, que demuestra la filtración de secretos cuando los productores HTTP de Apache Camel resuelven marcadores de posición de propiedades en encabezados CamelHttpUri proporcionados por el atacante.

Ver Repositorio
1hace 2 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-78164 — Los productores HTTP de Camel resuelven marcadores de posición de propiedades en cabeceras URI proporcionadas por el mensaje

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que las familias de productores HTTP permiten que un mensaje entrante sobrescriba la URI del endpoint a través de las cabeceras CamelHttpUri y CamelRestHttpUri, y luego pasaban esa cadena proporcionada por el mensaje por CamelContext.resolvePropertyPlaceholders() antes de usarla.

La resolución de marcadores de posición de propiedades es una facilidad de resolución de configuración, no un paso de análisis de URI. Alcanza variables de entorno del sistema operativo, propiedades del sistema de la JVM, cada PropertiesFunction en el classpath (incluidas las funciones de secretos de AWS, Azure, GCP, HashiCorp, IBM, CyberArk y Kubernetes) y — a través de camel-bean — la invocación de un método sin argumentos en cualquier bean del registro. Aplicarla a contenido de Exchange influenciado por el atacante convierte una cadena URI en un contexto de evaluación de configuración y beans. El autor de la ruta no optó por nada de esto: un simple to("http://backend/api") estático era suficiente.

RuntimeDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0 (afectado; corregido en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-http 3.29.0 (Camel 4.15.0, afectado)

El comportamiento es anterior a la línea 4.x (se remonta a camel-http4 / camel-netty4), por lo que todas las versiones afectadas y el Camel 4.15.0 del Camel Quarkus más reciente son vulnerables. La corrección se distribuye en Camel 4.18.5 / 4.22.1 / 4.23.0; el módulo Spring Boot ejecuta tanto la compilación afectada (4.22.0) como la compilación corregida (4.22.1). Ningún Camel Quarkus publicado incluye todavía un Camel corregido.

Qué demuestra

La ruta es un simple to("http://127.0.0.1:9100/collect") estático que apunta a un colector local. El atacante establece la cabecera CamelHttpUri con una URI que lleva un token de marcador de posición de propiedades — sin conocer el valor del secreto, solo nombrando la clave:

CamelHttpUri: http://127.0.0.1:9100/collect?leak={{sys:cve78164.secret}}

La aplicación inicializa una propiedad del sistema JVM cve78164.secret para representar cualquier valor de configuración o secreto de bóveda. En la compilación afectada, el productor resuelve el marcador de posición antes de que se envíe la solicitud, por lo que el colector ve el secreto en la consulta saliente. En la compilación corregida, el token se reenvía literalmente.

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 afectada:

Outbound request observed by the collector:
    GET /collect?leak=S3CR3T-cve78164-do-not-leak

>>> PROVEN: the {{sys:...}} placeholder in the attacker-supplied CamelHttpUri was resolved,
>>> expanding the secret 'S3CR3T-cve78164-do-not-leak' into the outbound request.

En la compilación corregida, el colector en su lugar ve GET /collect?leak={{sys:cve78164.secret}} (literal, no resuelto).

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-http / camel-http-common / camel-vertx-http / camel-undertow / camel-netty-http
CWECWE-1336 (Neutralización incorrecta de elementos especiales utilizados en un motor de plantillas), CWE-200 (Exposición de información)
SeveridadALTA
Vector de ataqueCabecera de anulación CamelHttpUri / CamelRestHttpUri que transporta un token {{...}}; el cuerpo/cabeceras no están limitados por bridgeEndpoint, y varios consumidores rellenan CamelHttpUri a partir de la línea de petición como funcionalidad de proxy inverso
ImpactoExpansión de variables de entorno, propiedades del sistema y secretos de vault en la petición saliente; invocación sin argumentos de beans del registro; un oráculo de claves de configuración establecidas/no establecidas mediante el error reflejado
Versiones afectadasDesde 4.0.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1 (el comportamiento es anterior a 4.x)
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24418
Crédito[email protected]

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

La corrección

La llamada resolvePropertyPlaceholders() por mensaje se elimina en cada sitio afectado, por lo que un token {{...}} que aparece solo en CamelHttpUri o CamelRestHttpUri ahora se trata como parte literal de la URI. Los marcadores de posición en la URI del propio endpoint de la ruta no se ven afectados: se resuelven una vez, en tiempo de compilación, cuando se crea el endpoint.

Mitigación si no puede actualizar

Elimine las cabeceras de anulación en el límite de confianza antes del productor con removeHeader("CamelHttpUri") y removeHeader("CamelRestHttpUri"), o establezca skipControlHeaders=true en los endpoints camel-http (el único componente que ofrece esa opción). bridgeEndpoint=true no es una solución alternativa. Aplique un HeaderFilterStrategy de entrada estricto en los consumidores expuestos a remitentes no confiables, y resuelva los secretos a través de un vault en lugar de mediante variables de entorno o propiedades del sistema que un marcador de posición pueda nombrar.

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. El "secreto" es un fixture local inerte. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta