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-83531 — Prueba de concepto ejecutable en Spring Boot para CVE-2026-83531, que demuestra la inyección de lenguaje de expresiones en el endpoint dynamic-router-control de Apache Camel y verifica la corrección. | Kitploit
Herramientas/GitHubGitHub/oscerd/cve-2026-83531
Herramientas DefensivasAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebAprendizaje y Educación
GitHuboscerd/cve-2026-83531

CVE-2026-83531

Prueba de concepto ejecutable en Spring Boot para CVE-2026-83531, que demuestra la inyección de lenguaje de expresiones en el endpoint dynamic-router-control de Apache Camel y verifica la corrección.

Ver Repositorio
3hace 1 díaAú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-83531 — camel-dynamic-router: inyección de lenguaje de expresiones en el endpoint de control

Reproductor de prueba de concepto ejecutable para la vulnerabilidad de Apache Camel en la que el endpoint dynamic-router-control tomaba el predicado de suscripción y el nombre del lenguaje usado para compilarlo del mensaje entrante (los campos predicate / expressionLanguage de un DynamicRouterControlMessage, o las cabeceras CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage). El servicio entonces resolvía ese lenguaje desde el CamelContext y compilaba la expresión en un Predicate, sin lista de permitidos y sin opt-in. El predicado compilado se evaluaba contra cada exchange enrutado a través del canal — por lo que cualquier actor capaz de enviar un mensaje a un transporte cuya ruta lo reenvíe a un endpoint de control podía suministrar una expresión de su elección, evaluada con los privilegios del proceso de Camel. Podía seleccionarse cualquier lenguaje presente en el classpath, incluido simple, que siempre está presente y era el predeterminado.

Solo Camel Spring Boot. No existe una extensión camel-quarkus-dynamic-router, por lo que este reproductor no puede ejecutarse en Camel Quarkus.

RuntimeDirectorioStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0 (afectado; corregido en 4.22.1)

Qué demuestra

La aplicación configura un canal de Dynamic Router test (direct:start → dynamic-router://test). El atacante envía un mensaje de control subscribe que lleva una expresión de predicado y un lenguaje elegidos por el atacante:

CamelDynamicRouterPredicate          = ${bean:detonator?method=detonate}
CamelDynamicRouterExpressionLanguage = simple

A continuación, un mensaje se enruta a través del canal, que evalúa el predicado de suscripción. En la compilación afectada, la expresión se ejecuta, invocando detonator.detonate() — un sustituto benigno de cualquier método de registro sin argumentos al que un atacante podría llegar (y cualquier lenguaje, p. ej. Groovy, habilita código arbitrario). En la compilación corregida, el endpoint de control se niega a tomar el predicado/lenguaje del mensaje.

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:

Subscription accepted.
>>> PROVEN: the attacker-supplied predicate expression was compiled and evaluated, invoking
>>> detonator.detonate() with the privileges of the Camel process ...

En la compilación corregida, la suscripción se rechaza con IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ....

Resumen de la vulnerabilidad

PropiedadValor
Componentecamel-dynamic-router (endpoint dynamic-router-control)
CWECWE-94 (Inyección de código), CWE-917 (Inyección de lenguaje de expresiones)
SeveridadALTA
Vector de ataqueUn mensaje de control (subscribe/update) que proporciona una expresión de predicado y un lenguaje, en un transporte cuya ruta lo reenvía a un endpoint dynamic-router-control
ImpactoEvaluación de una expresión elegida por el atacante (cualquier lenguaje del classpath) con los privilegios del proceso de Camel — ejecución de código
Versiones afectadasDesde 4.4.0 anterior a 4.18.5, desde 4.19.0 anterior a 4.22.1
Versiones corregidas4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24576
CréditoLeon Zlobecki

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

La corrección

La expresión de predicado y su lenguaje ya no se toman del mensaje de control de forma predeterminada: un mensaje de control que los proporcione se rechaza a menos que el autor de la ruta opte explícitamente por ello con allowPredicateFromMessage=true en el endpoint dynamic-router-control. La vía prevista es configurar predicate y expressionLanguage en la URI del endpoint (controlado por el autor de la ruta), como hacían las versiones anteriores a 4.4.0.

Mitigación si no puede actualizar

No reenvíe mensajes de origen externo a un endpoint dynamic-router-control; gestione las suscripciones únicamente desde endpoints controlados por el autor de la ruta, y restrinja los transportes que pueden alcanzar el canal de control.

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 payload es un bean marcador inocuo. No utilice este material contra sistemas que no sean de su propiedad o que no opere.

Descargar herramienta