CVE-2026-49098
Apache Camel : Camel-Kafka : Les constantes d'en-tête d'échange kafka.OVERRIDE_TOPIC (et autres kafka.*) utilisaient des noms sans préfixe Camel qui contournent le filtre d'en-têtes HTTP en amont, permettant à un client HTTP de rediriger des messages Kafka vers un sujet arbitraire.
- Publié
- 6 juil. 2026
- Mise à jour
- 7 juil. 2026
- Attribution de CNA
- apache
- Preuve observée
- 7 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:NFaible · 30 prochains jours
- Percentile
- 47,5 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Vulnérabilité de validation d'entrée incorrecte et de neutralisation incorrecte d'éléments spéciaux dans la sortie utilisée par un composant en aval (« Injection ») dans le composant Kafka d'Apache Camel. Le producteur camel-kafka peut remplacer son sujet cible configuré à l'exécution à partir de l'en-tête d'échange kafka.OVERRIDE_TOPIC : KafkaProducer.evaluateTopic() renvoie la valeur de l'en-tête de préférence au sujet configuré sur le point de terminaison. Les constantes d'en-têtes de contrôle dans KafkaConstants (par exemple OVERRIDE_TOPIC = kafka.OVERRIDE_TOPIC, OVERRIDE_TIMESTAMP = kafka.OVERRIDE_TIMESTAMP, PARTITION_KEY = kafka.PARTITION_KEY) utilisaient des valeurs simples, sans préfixe Camel. Le propre KafkaHeaderFilterStrategy de camel-kafka filtre bien l'espace de noms kafka.*, mais uniquement à la frontière de sérialisation Kafka-vers-Exchange (lecture des en-têtes d'enregistrement Kafka dans l'Exchange, et écriture des en-têtes d'Exchange dans un enregistrement Kafka) ; il ne s'applique pas aux en-têtes qui arrivent d'un consommateur en amont dans une route multi-composants. Le consommateur HTTP en amont utilise HttpHeaderFilterStrategy, qui bloque uniquement l'espace de noms Camel / camel, donc un en-tête kafka.* passe sans être filtré. Par conséquent, dans une route qui relie un consommateur HTTP (par exemple platform-http) à un producteur kafka:, tout client HTTP pourrait définir l'en-tête kafka.OVERRIDE_TOPIC et faire publier le message sur un sujet Kafka arbitraire au lieu de celui configuré — le redirigeant vers un sujet interne sensible, ou injectant des messages conçus par un attaquant dans un sujet consommé par un service critique en aval. Les en-têtes associés kafka.OVERRIDE_TIMESTAMP et kafka.PARTITION_KEY pourraient également être injectés pour antidater des messages ou cibler des partitions spécifiques. Aucune information d'identification n'est requise lorsque le consommateur de pontage n'est pas authentifié. Ce problème affecte Apache Camel : de 4.0.0 avant 4.14.8, de 4.15.0 avant 4.18.3, de 4.19.0 avant 4.21.0. Il est recommandé aux utilisateurs de mettre à niveau vers la version 4.21.0, qui corrige le problème. Si les utilisateurs sont sur le flux de versions LTS 4.14.x, il leur est suggéré de mettre à niveau vers 4.14.8. Si les utilisateurs sont sur le flux de versions 4.18.x, il leur est suggéré de mettre à niveau vers 4.18.3. Après la mise à niveau, les routes qui définissent ou lisent les en-têtes Kafka via les noms d'en-têtes bruts doivent utiliser les noms CamelKafka* (par exemple CamelKafkaOverrideTopic et CamelKafkaTopic) au lieu des anciennes valeurs kafka.*. Pour les déploiements qui ne peuvent pas mettre à niveau immédiatement, supprimez les en-têtes kafka.* de toute entrée non fiable avant le producteur kafka: (par exemple removeHeaders('kafka.*') au début de la route), et définissez le sujet cible à partir d'une source fiable.
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.