ArticleInfrastructure & Cloud
Google Cloud corrige une faille exposant des images de conteneurs privés
Le fournisseur de cloud a publié un correctif pour une vulnérabilité capable d'accéder à des images de conteneurs privées. Elle peut entraîner une escalade de privilèges, un vol de données et des actes d'espionnage.

Baptisée ImageRunner, la vulnérabilité critique découverte par l’entreprise de cybersécurité Tenable affecte Google Cloud. Elle a été rapidement corrigée avant d’être exploitée par des attaquants qui auraient pu accéder à des informations sensibles à partir de déploiements GCP (Google Cloud Platform) en contournant les autorisations et obtenir un accès non autorisé aux images de conteneurs. « C’est possible parce que Cloud Run tire des images au cours d'un processus de déploiement de révision », a déclaré Tenable dans un commentaire avant de rendre la faille publique. « Cloud Run utilise un agent de service, un ‘worker’ ou agent de service automatisé qui gère les opérations essentielles et dispose de permissions plus élevées pour récupérer des images à partir du Container Registry ou de l’Artifact Registry. »
Cloud Run est une plateforme sans serveur entièrement gérée pour déployer et exécuter des applications conteneurisées et chaque fois qu'une autre version d'une application conteneurisée est déployée, le service crée une « révision », c’est-à-dire une version spécifique et immuable d'un service déployé. Google a corrigé le problème en interne en janvier 2025 avec des vérifications supplémentaires et les développeurs n'ont rien à faire.
Extraction d'images « privées » restreintes
Une condition préalable à l’exploitation de la faille ImageRunner repose sur une identité qui n'a pas d'autorisations de registre, mais qui a des autorisations d'édition sur les révisions de Cloud Run. Le dénommé ‘worker’ dispose de ces autorisations, que les attaquants pourraient utiliser pour extraire des images privées de Artifact Registry (GAR) et de Container Registry (GCR) à partir du même compte. Les images privées sont restreintes et leur accès nécessite une authentification. Elles sont utilisées pour stocker des applications propriétaires, des configurations ou du code sensible.
Le ‘worker’ « est un type spécial de compte de service créé et géré par Google Cloud », a expliqué Liv Matan, chercheuse principale en sécurité chez Tenable. « Si un attaquant obtient certaines autorisations dans le projet d'une victime, en particulier run.services.update et iam.serviceAccounts.actAspermissions, il peut modifier un service Cloud Run et déployer une autre révision. « Ce faisant, il pourrait spécifier par injection de code malveillant toute image de conteneur privée stockée dans les registres d'une victime », a ajouté Mme Matan. Selon une déclaration de Tenable, dans un scénario réel, un attaquant pourrait utiliser cette vulnérabilité pour voler des données ou espionner. L'attaquant pourrait utiliser son code pour inspecter le contenu de l'image privée, extraire les secrets qui y sont stockés ou même exfiltrer des données sensibles.
L’ajout d’une exigence d'accès explicite en lecture
La faille, qui n'a jamais reçu d'identifiant CVE, a été corrigée par Google en janvier, Cloud Run ayant été mis à jour avec les restrictions nécessaires. « Le mandataire (du compte utilisateur ou du service) qui crée ou met à jour une ressource Cloud Run a désormais besoin d'une autorisation explicite pour accéder à l'image ou aux images du conteneur », a indiqué Google Cloud dans une déclaration. « Lorsque de l’utilisation d’Artifact Registry, il faut s’assurer que le mandataire principal dispose du rôle IAM Artifact Registry Reader (roles/artifactregistry.reader) sur le projet ou le référentiel contenant la ou les images de conteneur à déployer. »
Selon Tenable, le patch a été déployé à l'ensemble de la production le 28 janvier en tant que « changement radical », à la suite d'une annonce de service obligatoire envoyée aux propriétaires de projets, de dossiers et d’entreprises concernés au cours de la dernière semaine de novembre 2024. Pour GCP, un changement radical désigne une mise à jour ou une modification qui perturbe les fonctionnalités existantes, obligeant les utilisateurs à mettre à jour leurs configurations, leur code ou leurs flux de travail pour maintenir la compatibilité.
