CVE-2026-110952 in Kafka
Résumé
par VulDB • 28/10/2026
Un broker Kafka qui authentifie les clients via SASL/OAUTHBEARER en utilisant le validateur intégré basé sur JWKS vérifie toujours la signature JWT, mais deux autres contrôles ne sont effectués que si explicitement configurés :
- La revendication émetteur (iss) n'est vérifiée que lorsque sasl.oauthbearer.expected.issuer est défini. Lorsqu'il n'est pas défini, un token signé de manière valide et portant l'audience attendue est accepté, indépendamment de l'émetteur qui l'a généré. - Une revendication audience (aud) n'est requise que lorsque sasl.oauthbearer.expected.audience est défini. Lorsqu'il n'est pas défini, un token signé de manière valide et omettant la revendication aud est accepté. (Un token portant une revendication aud est toujours rejeté lorsqu'aucune audience attendue n'est configurée.)
Ces deux options sont par défaut non définies et ont été documentées comme facultatives (Importance FAIBLE) depuis le KIP-768 (3.1.0).
Impact : L'exposition est réalisable principalement dans les déploiements dont le point de terminaison JWKS sert des clés de signature pour plusieurs émetteurs (un fournisseur d'identité multi-locataire, un JWKS agrégé/partagé ou des clés de signature partagées) : un token généré pour un autre émetteur, ou un token dépourvu d'une audience, peut être accepté pour l'authentification — potentiellement en tant que principal à privilèges plus élevés. Dans un déploiement mono-émetteur où le fournisseur contrôle la revendication iss et délivre des tokens ciblés par audience, l'exposition est limitée. L'ancre de confiance de signature reste appliquée dans tous les cas. Ceci est distinct du CVE-2026-33557 (acceptation de tokens non signés/non validés) ; ici la signature est validée et seuls les contrôles d'émetteur/d'audience ne sont pas imposés par défaut.
Atténuation (toutes les versions concernées, aucune mise à niveau requise) : Définissez à la fois sasl.oauthbearer.expected.issuer (avec la valeur iss exacte de votre fournisseur) et sasl.oauthbearer.expected.audience (avec l'audience ou les audiences attendues par vos brokers), pour chaque écouteur. Les brokers qui définissent ces paramètres effectuent des vérifications d'émetteur/d'audience à correspondance exacte et ne sont pas affectés. Ces deux options sont disponibles depuis la version 3.1.0.
Résolution : - À partir d'Apache Kafka 4.4.0 : un broker configuré avec un point de terminaison JWKS refuse de démarrer sauf si sasl.oauthbearer.expected.issuer et sasl.oauthbearer.expected.audience sont tous deux définis (sécurisé par défaut). Les déploiements qui ne souhaitent pas restreindre intentionnellement l'émetteur et/ou l'audience peuvent choisir de se soustraire à cette contrainte pour chaque axe avec sasl.oauthbearer.allow.unverified.issuer=true et/ou sasl.oauthbearer.allow.unverified.audience=true.
If you want to get best quality of vulnerability data, you may have to visit VulDB.