Une vulnérabilité dans AWS IAM Authenticator for Kubernetes pourrait permettre à un acteur malveillant de se faire passer pour d’autres utilisateurs et d’élever les privilèges dans les clusters Kubernetes, a découvert un chercheur en sécurité.

Suivi comme CVE-2022-2385la vulnérabilité désormais corrigée pourrait permettre à un attaquant de se faire passer pour d’autres utilisateurs et d’élever les privilèges dans les clusters Elastic Kubernetes Service (EKS) configurés avec AccessKeyID paramètre de modèle.

Un attaquant pourrait créer une demande signée malveillante au service de jetons de sécurité (STS) GetCallerIdentity endpoint qui inclut plusieurs fois le même paramètre avec des valeurs différentes.

Contournement de l’authentification

Le chercheur Gafnit Amiga de Lightspin détaillé dans un article de blog comment un attaquant peut envoyer deux variables différentes avec le même nom mais avec des caractères majuscules et minuscules différents – par exemple, ils peuvent envoyer à la fois ‘Action’ et ‘action’.

Amiga a expliqué : « Puisque les deux [variables in the vulnerable code] sommes… ‘Baisser‘, la valeur dans le queryParamsLower dictionnaire sera remplacé tandis que la demande à AWS sera envoyée avec les paramètres et leurs valeurs.

« Ce qui est cool, c’est qu’AWS STS ignorera le paramètre qu’il n’attend pas, dans ce cas AWS STS ignorera le paramètre d’action.

Amiga a écrit : « Parce que la boucle for n’est pas ordonnée, les paramètres ne sont pas toujours remplacés dans l’ordre que nous voulons, donc nous pourrions avoir besoin d’envoyer la demande avec le jeton malveillant au serveur AWS IAM Authenticator plusieurs fois.

La cause racine vulnérable était présente depuis le premier commit en octobre 2017. Ainsi, l’action de changement et les jetons d’ID de cluster non signés étaient exploitables depuis le premier jour.

L’exploitation du nom d’utilisateur par le AccessKeyID était possible depuis septembre 2020.

Correctifs publiés

Amiga a déclaré que la vulnérabilité était difficile à localiser et qu’il était également difficile de remarquer que les valeurs peuvent être remplacées alors que STS ignore les paramètres de requête supplémentaires inattendus.

« J’ai essayé d’autres vecteurs d’attaque dans l’espoir de manipuler le client HTTP, mais ils se sont protégés contre eux », a déclaré Amiga.

Amazon a depuis corrigé les problèmes qui, selon Amiga, ont « considérablement amélioré le processus ». Le chercheur a ajouté : « L’ensemble du processus a duré un mois, et ils m’ont tenu au courant pendant le processus. Nous avons également coordonné la divulgation.

Les mises à jour sont corrigées dans la version 0.5.9. Plus d’informations peuvent être trouvées dans Bulletin de sécurité d’Amazon.