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-84178 — Reproducteur de preuve de concept exécutable pour CVE-2026-84178, une CSRF de connexion dans le callback du code d'autorisation de camel-oauth d'Apache Camel qui échange les codes sans vérifier l'état. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-84178
Analyse des VulnérabilitésExploitation d'Applications WebSécurité WebAuthentificationApprentissage et Éducation
GitHuboscerd/cve-2026-84178

CVE-2026-84178

Reproducteur de preuve de concept exécutable pour CVE-2026-84178, une CSRF de connexion dans le callback du code d'autorisation de camel-oauth d'Apache Camel qui échange les codes sans vérifier l'état.

Voir le dépôt
1il y a 2 joursPas 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-84178 — camel-oauth : CSRF de connexion sur le callback authorization-code (state manquant)

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où le callback OAuth authorization-code ne portait pas de paramètre state le liant à la requête d'autorisation qui a initié le flux, et n'en vérifiait pas. Un code d'autorisation obtenu dans n'importe quel navigateur pouvait donc être échangé au niveau du callback et associé à la session qui le présentait — cross-site request forgery de connexion : une victime est silencieusement connectée avec une identité contrôlée par l'attaquant, de sorte que les actions et données ultérieures de la victime aboutissent dans le compte de l'attaquant. (Le même callback non validé permettait également d'influencer la cible de redirection post-authentification — une redirection ouverte.) Comme le note l'avis, la vérification du state s'exécute avant l'échange du code, la différence est donc atteignable sans aucune interaction avec le fournisseur d'identité.

RuntimeRépertoireStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-oauth 4.22.0 (affecté ; corrigé en 4.22.1), callback via camel-undertow
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-oauth 3.39.0 (Camel 4.22.0, affecté ; contrôle corrigé 3.40.0 / Camel 4.22.1), callback via camel-quarkus-platform-http

Les deux modules démontrent le comportement affecté ainsi que le comportement corrigé.

Ce que cela démontre

Le processeur réel et non modifié OAuthCodeFlowCallback gère le point de terminaison de callback. Un stub OAuth minimal est enregistré dans le registre Camel afin que le callback s'exécute sans fournisseur d'identité actif — il ne remplace que l'IdP, et enregistre le moment où un code d'autorisation est échangé (ce qui, dans le flux réel, lie l'identité résultante à la session présentatrice). L'attaquant se contente d'appeler le callback avec un code et aucun state correspondant :

  • Affecté : le callback échange le code fourni par l'attaquant et lie l'identité à la session — HTTP 302 (connexion réussie). Le stub enregistre l'échange.
  • Corrigé : le callback rejette avec HTTP 400 "No authorization code flow in progress" (il exige un state correspondant à la requête d'autorisation initiée par cette session) — le code n'est jamais échangé.
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é :

Request: GET /callback?code=ATTACKER-SUPPLIED-AUTH-CODE   (no 'state' parameter)
Callback HTTP status: 302
>>> PROVEN: the callback redeemed the authorization code ... WITHOUT verifying a state parameter ... login CSRF.

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-oauth (callback authorization-code, OAuthCodeFlowCallback)
CWECWE-352 (Cross-Site Request Forgery)
SévéritéMOYENNE
Vecteur d'attaqueUne requête de callback transportant un code d'autorisation sans state lié à la requête d'autorisation de la session
ImpactCSRF de connexion (la victime est connectée avec une identité contrôlée par l'attaquant) ; redirection ouverte depuis une origine de confiance
Versions affectéesÀ partir de 4.11.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-24437
CréditClaude Security Scan Tool

Avis : https://camel.apache.org/security/CVE-2026-84178.html

Le correctif

Le callback transporte désormais et vérifie un paramètre state à usage unique lié à la requête d'autorisation que la session a initiée : expectedState = session.removeValue(OAUTH_STATE), comparé (en temps constant) au paramètre de requête state. Si aucun flux n'est en cours, ou si le state ne correspond pas, le callback rejette la requête avant d'échanger le code.

Atténuation si vous ne pouvez pas mettre à jour

Placez le callback derrière un composant qui impose une liaison CSRF state, ou ne vous appuyez pas sur le callback du flux de code OAuth pour l'établissement de session, jusqu'à ce que vous puissiez mettre à jour.

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. Le fournisseur d'identité factice et le « code de l'attaquant » sont des fixtures locales inertes. N'utilisez pas ce matériel contre des systèmes que vous ne possédez pas ou n'exploitez pas.

Télécharger l’outil