Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-83531 — Preuve de concept Spring Boot exécutable pour CVE-2026-83531, démontrant l'injection d'expression-language dans le point de terminaison dynamic-router-control d'Apache Camel et vérifiant le correctif. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-83531
Outils DéfensifsAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebApprentissage et Éducation
GitHuboscerd/cve-2026-83531

CVE-2026-83531

Preuve de concept Spring Boot exécutable pour CVE-2026-83531, démontrant l'injection d'expression-language dans le point de terminaison dynamic-router-control d'Apache Camel et vérifiant le correctif.

Voir le dépôt
3il y a 1 jourPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-83531 — camel-dynamic-router : injection d'expression-language via le point de terminaison de contrôle

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où le point de terminaison dynamic-router-control prenait le prédicat d'abonnement et le nom du langage utilisé pour le compiler depuis le message entrant (les champs predicate / expressionLanguage d'un DynamicRouterControlMessage, ou les en-têtes CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage). Le service résolvait ensuite ce langage depuis le CamelContext et compilait l'expression en un Predicate, sans liste d'autorisation et sans opt-in. Le prédicat compilé était évalué sur chaque exchange routé à travers le canal — ainsi tout acteur capable d'envoyer un message sur un transport dont la route le transmet à un point de terminaison de contrôle pouvait fournir une expression de son choix, évaluée avec les privilèges du processus Camel. N'importe quel langage présent sur le classpath pouvait être sélectionné, y compris simple, qui est toujours présent et était celui par défaut.

Camel Spring Boot uniquement. Il n'existe pas d'extension camel-quarkus-dynamic-router, ce reproducteur ne peut donc pas être exécuté sur Camel Quarkus.

RuntimeRépertoireStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0 (affecté ; corrigé en 4.22.1)

Ce que cela démontre

L'application met en place un canal Dynamic Router test (direct:start → dynamic-router://test). L'attaquant envoie un message de contrôle subscribe portant une expression de prédicat et un langage choisis par l'attaquant :

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

Puis un message est acheminé via le canal, qui évalue le prédicat d'abonnement. Sur la version affectée, l'expression s'exécute, invoquant detonator.detonate() — un substitut bénin pour n'importe quelle méthode de registre sans argument qu'un attaquant pourrait atteindre (et n'importe quel langage, par exemple Groovy, permet l'exécution de code arbitraire). Sur la version corrigée, le point de terminaison de contrôle refuse de prendre le prédicat/le langage depuis le message.

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

Sortie attendue sur le build affecté :

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

Sur la version corrigée, l'abonnement est rejeté avec IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ....

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-dynamic-router (endpoint dynamic-router-control)
CWECWE-94 (Injection de code), CWE-917 (Injection d'expression language)
GravitéÉLEVÉE
Vecteur d'attaqueUn message de contrôle (subscribe/update) fournissant une expression de prédicat et un langage, sur un transport dont la route le transmet à un endpoint dynamic-router-control
ImpactÉvaluation d'une expression choisie par l'attaquant (n'importe quel langage du classpath) avec les privilèges du processus Camel — exécution de code
Versions affectéesÀ partir de 4.4.0 avant 4.18.5, à partir de 4.19.0 avant 4.22.1
Versions corrigées4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24576
CréditLeon Zlobecki

Avis de sécurité : https://camel.apache.org/security/CVE-2026-83531.html

Le correctif

L'expression de prédicat et son langage ne sont plus extraits du message de contrôle par défaut : un message de contrôle qui les fournit est rejeté, sauf si l'auteur de la route active explicitement l'option allowPredicateFromMessage=true sur l'endpoint dynamic-router-control. La voie prévue consiste à configurer predicate et expressionLanguage sur l'URI de l'endpoint (contrôlés par l'auteur de la route), comme le faisaient les versions antérieures à 4.4.0.

Atténuation si vous ne pouvez pas mettre à jour

Ne transmettez pas de messages d'origine externe à un endpoint dynamic-router-control ; gérez les abonnements uniquement depuis des endpoints contrôlés par l'auteur de la route, et restreignez les transports pouvant atteindre le canal de contrôle.

Avertissement

Ce dépôt est publié à des fins éducatives et défensives : pour aider les utilisateurs d'Apache Camel à comprendre la vulnérabilité, vérifier s'ils sont affectés et confirmer que la mise à jour la résout. La charge utile est un bean marqueur inoffensif. N'utilisez pas ce contenu contre des systèmes que vous ne possédez pas ou n'exploitez pas.

Télécharger l’outil