CVE-2026-33186
Contournement de l'autorisation dans gRPC-Go via un slash initial manquant dans :path
- Publié
- 20 mars 2026
- Mise à jour
- 18 sept. 2026
- Attribution de CNA
- GitHub_M
- Preuve observée
- 17 août 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NFaible · 30 prochains jours
- Percentile
- 73,7 %
- 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é
gRPC-Go est l'implémentation du langage Go de gRPC. Les versions antérieures à 1.79.3 présentent un contournement d'autorisation résultant d'une validation d'entrée inappropriée du pseudo-en-tête HTTP/2 `:path`. Le serveur gRPC-Go était trop permissif dans sa logique de routage, acceptant des requêtes où le `:path` omettait la barre oblique initiale obligatoire (par exemple, `Service/Method` au lieu de `/Service/Method`). Bien que le serveur ait correctement routé ces requêtes vers le gestionnaire approprié, les intercepteurs d'autorisation (y compris le package officiel `grpc/authz`) évaluaient la chaîne de chemin brute et non canonique. Par conséquent, les règles « deny » définies à l'aide de chemins canoniques (commençant par `/`) ne correspondaient pas à la requête entrante, permettant ainsi de contourner la politique si une règle « allow » de secours était présente. Cela affecte les serveurs gRPC-Go qui utilisent des intercepteurs d'autorisation basés sur le chemin, tels que l'implémentation RBAC officielle dans `google.golang.org/grpc/authz` ou des intercepteurs personnalisés reposant sur `info.FullMethod` ou `grpc.Method(ctx)` ; ET qui disposent d'une politique de sécurité contenant des règles « deny » spécifiques pour les chemins canoniques mais autorisant par défaut d'autres requêtes (une règle « allow » de secours). La vulnérabilité est exploitable par un attaquant capable d'envoyer des trames HTTP/2 brutes avec des en-têtes `:path` malformés directement au serveur gRPC. Le correctif de la version 1.79.3 garantit que toute requête avec un `:path` ne commençant pas par une barre oblique initiale est immédiatement rejetée avec une erreur `codes.Unimplemented`, l'empêchant d'atteindre les intercepteurs d'autorisation ou les gestionnaires avec une chaîne de chemin non canonique. Bien que la mise à niveau soit le chemin le plus sûr et recommandé, les utilisateurs peuvent atténuer la vulnérabilité en utilisant l'une des méthodes suivantes : utiliser un intercepteur de validation (atténuation recommandée) ; normalisation au niveau de l'infrastructure ; et/ou durcissement de la politique.
Sources
1Utilisation 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.