AWS corrige une faille du SDK qui transformait un champ de région en vol d'informations d'identification

Amazon Web Services Inc. a corrigé une faille dans sept de ses kits de développement logiciel après que la startup de sécurité des produits Pi Inc. ait retracé un seul rapport de bogue à environ 2 500 instances du même défaut, a révélé Pi aujourd'hui.

Chaque kit SDK AWS crée le nom d'hôte qu'il appelle à partir d'un modèle. La région se situe au milieu de https://{service}. {région}.amazonaws.com. Une région valide ressemble à us-east-1. Sur les chemins de code vulnérables, rien n'a été vérifié pour cela.

De nombreuses applications permettent à un utilisateur de choisir la région, c'est pourquoi les chercheurs de Pi ont choisi « @attaquant.com# ». Le SDK a créé https://[email protected]#.amazonaws.com et a signé une demande à cette adresse. Un analyseur d'URL lit tout ce qui se trouve avant le @ comme nom d'utilisateur. Tout ce qui suit le # est supprimé. Ce qui survit, c'est Attacker.com.

La redirection d’un appel d’interface de programmation d’application ordinaire entraîne une fuite d’une signature de requête. C'est une possibilité de survie. L'appel AssumeRoleWithWebIdentity effectué par les charges de travail Elastic Kubernetes Service, les applications Cognito et les intégrations OpenID Connect n'est pas ordinaire. Cette requête comporte un jeton de porteur dans son corps, en clair.

Lors d'un engagement autorisé, la cible a couru à l'intérieur d'EKS. L'appel redirigé transportait le jeton de compte de service Kubernetes du pod vers un serveur contrôlé par les testeurs. La relecture sur AWS Security Token Service a renvoyé des informations d'identification en direct dans le compte du client.

Pi a déclaré avoir remis à sa plateforme le rapport original et rien d'autre, sans règles par langue ni liste de services à vérifier. Le logiciel a extrait le code vulnérable dans ce que l'entreprise appelle un anti-modèle, une description du comportement plutôt que de la syntaxe, puis a recherché ce comportement ailleurs.

AWS génère des clients SDK pour plus de 400 services à partir de modèles de services partagés, de sorte qu'une vérification manquante dans le générateur atterrit partout à la fois. Python et Ruby s'en gardaient depuis des années. La plupart des autres ne l’avaient pas fait.

Le correctif s'étend sur quelques lignes. Validez la région en tant qu'étiquette d'hôte, lettres, chiffres et traits d'union uniquement, avant qu'elle n'atteigne le nom d'hôte. Cette validation réside dans chaque SDK généré, et non dans un seul emplacement partagé. AWS a fini par l'écrire sept fois.

Pi l'a signalé à AWS le 14 octobre 2025. Un premier correctif a été publié en une semaine. Les avis n'ont été diffusés que les 8 et 9 janvier. Go v2 était le dernier. Seul le SDK .NET a généré un CVE, CVE-2026-22611, noté faible à 3,7 sur l'échelle CVSS, et le co-fondateur et directeur général de Pi, Guy Arazi, est nommé dans les remerciements.

AWS n'a rien considéré de tout cela comme une vulnérabilité. Ses avis qualifient ce changement d’amélioration de la défense en profondeur. Selon AWS, la validation de cette entrée est le travail du développeur dans le cadre du modèle de responsabilité partagée.

Pi qualifie la note d’incomplète. La société a testé la faille là où elle s'exécute réellement sur des plates-formes tierces qui intègrent un SDK AWS et exposent le champ de région et a déclaré que sept sur sept étaient exploitables. Chaque fuite d'informations d'identification AWS en direct vers un serveur de rappel.

Certaines étaient des entreprises bien connues et d’autres des fournisseurs de sécurité. Tous ont été notifiés et corrigés avant publication. Un score par instance évalue un résultat à un seul endroit, a écrit Pi, et n'a aucun moyen d'exprimer une classe de comportement qu'un générateur de code a copié sur des milliers de clients.

Newsletter

Rejoignez notre newsletter pour des astuces chaque semaine