En bref

  • CVE-2026-79696 (CVSS 10.0) : injection de code non authentifiée dans Google Agent Development Kit (ADK) pour Python, versions 2.0.0 à 2.6.0
  • Systèmes affectés : tout environnement exposant adk web avec pytest installé — Cloud Run, GKE, serveurs on-premise Python
  • Action urgente : mettre à jour vers google-adk 2.7.0 et ne jamais exposer adk web à un réseau non maîtrisé

Les faits

Le 9 septembre 2026, Google a publié un avis de sécurité critique concernant son Agent Development Kit (ADK) pour Python, enregistré sous l'identifiant CVE-2026-79696 et référencé comme GitHub Security Advisory GHSA-q9cv-5mjc-7cjc. Cette vulnérabilité, classée CVSS v3.1 10.0 (vecteur AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H), permet à un attaquant distant non authentifié d'exécuter du code Python arbitraire sur tout serveur exposant l'interface web d'ADK. La faille affecte l'ensemble des versions comprises entre 2.0.0 et 2.6.0 incluse — soit plus d'un an de releases depuis le lancement public du framework en 2025. La version corrective est la 2.7.0, disponible sur PyPI depuis la date de publication de l'advisory.

Techniquement, CVE-2026-79696 est classée CWE-184 (Incomplete List of Disallowed Inputs). La protection mise en place par Google pour empêcher l'exécution de code arbitraire via l'interface adk web repose sur une liste noire (denylist) des modules Python et builtins dangereux — liste qui s'avère incomplète. L'interface adk web offre une fonctionnalité de replay de sessions de test permettant aux développeurs de rejouer des interactions précédentes avec leurs agents IA. Cette fonctionnalité interprète les sessions de test rejouées et, en raison des lacunes de la liste noire, un attaquant peut envoyer une session de test forgée qui déclenche l'exécution de commandes système arbitraires via des chemins d'import Python indirects non filtrés ou des builtins non bloqués (subprocess, os, importlib ou des mécanismes d'introspection Python avancés).

La condition d'exploitation requiert la présence de pytest dans l'environnement. Cette condition est quasi-universellement remplie dans les environnements de développement et de CI/CD : pytest est la bibliothèque de test Python la plus répandue de l'écosystème, installée par défaut dans la grande majorité des projets Python actifs. Les environnements Cloud Run et GKE qui exposent adk web (typiquement sur le port 8000) sont directement vulnérables. Sur ces plateformes Google Cloud, une exploitation réussie permet d'exécuter du code avec les permissions du service account attaché au conteneur, potentiellement avec des droits étendus sur l'environnement GCP de l'organisation.

L'interface adk web a été conçue comme un outil de développement local, non destiné à être exposé en production ou sur des réseaux publics. Cependant, des erreurs de configuration fréquentes dans les équipes déployant rapidement des prototypes ou des environnements de staging peuvent conduire à exposer adk web sur des interfaces réseau accessibles depuis Internet. Dans les environnements Kubernetes, des ingress rules trop permissives ou l'absence de Network Policies peuvent exposer involontairement le service. Ce scénario de misconfiguration couplé à la faille d'injection crée le risque critique évalué CVSS 10.

La popularité croissante des frameworks d'agents IA dans les entreprises en 2026 amplifie la surface d'attaque. Google ADK est activement utilisé par des milliers d'équipes de développement pour construire des agents IA sur les modèles Gemini. Le package google-adk a été téléchargé plusieurs millions de fois depuis son lancement sur PyPI. Cette large base d'installation, combinée à la tendance des équipes IA à déployer rapidement des prototypes sans durcissement sécurité, crée un risque systémique significatif. Les startups et équipes d'innovation en entreprise, souvent moins matures en sécurité que les équipes opérationnelles, constituent un vecteur d'exposition particulièrement vulnérable.

La sévérité maximale du score CVSS (10.0) est pleinement justifiée par l'absence totale de conditions préalables à l'exploitation : aucune authentification requise (PR:N), aucune interaction d'un utilisateur légitime nécessaire (UI:N), complexité d'attaque faible (AC:L). Le scope est modifié (S:C), signifiant qu'une exploitation réussie peut affecter des systèmes au-delà du composant vulnérable lui-même — notamment via l'accès aux ressources cloud du service account ou via les secrets d'environnement injectés dans le conteneur (API keys, credentials de bases de données, tokens OAuth). Dans un contexte GCP, une compromission peut se propager horizontalement vers Cloud Storage, BigQuery, Secret Manager et autres services du projet.

Google a publié la version corrective 2.7.0 de google-adk le 9 septembre 2026, adoptant une approche allowlist plutôt que denylist pour les modules et builtins accessibles lors du replay de sessions de test. Cette correction architecturale est nettement plus robuste : au lieu de tenter de bloquer les chemins dangereux connus (fondamentalement insuffisant face à la richesse de l'écosystème Python), la version 2.7.0 n'autorise explicitement que les modules et fonctions légitimes pour cette fonctionnalité spécifique. Cette approche devrait prévenir des variantes futures de la même classe de vulnérabilité.

Aucun PoC public n'avait été officiellement divulgué à la date de rédaction. L'absence de mention dans le catalogue KEV CISA et l'absence de rapports d'exploitation publiés par des fournisseurs de threat intelligence suggèrent qu'aucune campagne à grande échelle n'avait été observée au moment de la divulgation. Cependant, la combinaison d'une note CVSS maximale, d'une exploitation théoriquement simple (envoi d'une session de test forgée via HTTP), et d'une base d'installation large dans des environnements de développement IA actifs en fait une cible à haut risque dans les semaines suivant la publication. Les équipes de red team et les acteurs ciblant spécifiquement les infrastructures IA vont explorer ce vecteur.

Impact et exposition

Un attaquant exploitant CVE-2026-79696 obtient l'exécution de code Python arbitraire avec les permissions du processus adk web. Dans un environnement containerisé, cela équivaut à un accès complet au système de fichiers du conteneur, aux variables d'environnement (potentiellement riches en secrets), aux API Google Cloud accessibles via le service account, et à la possibilité d'établir des connexions réseau sortantes vers des serveurs de commande et contrôle. Dans un environnement on-premise non containerisé, l'impact peut être directement une compromission du serveur hôte avec accès au réseau interne.

Les conditions d'exposition combinent deux facteurs cumulatifs : l'interface adk web accessible réseau, et pytest installé dans le même environnement. La première condition peut être involontaire (misconfiguration de pare-feu, ingress Kubernetes trop large, liaison sur 0.0.0.0 par défaut). La seconde est quasi-certaine dans tout projet Python actif. Les organisations exposées incluent les équipes de développement IA avec des environnements de staging cloud mal segmentés, les pipelines CI/CD lançant adk web pendant des phases de test automatisé, et les déploiements de POC rapides sans durcissement.

L'impact dans les environnements Google Cloud est particulièrement critique : un service account de conteneur Cloud Run ou GKE peut disposer de permissions larges sur le projet GCP. Une compromission via CVE-2026-79696 peut mener à l'exfiltration de données depuis Cloud Storage ou BigQuery, à l'abus des quotas Gemini API, ou à la propagation latérale vers d'autres services. Les organisations appliquant le principe de moindre privilège sur leurs service accounts limitent significativement l'impact potentiel d'une exploitation.

Recommandations immédiates

  • Mettre à jour immédiatement vers google-adk 2.7.0 : pip install --upgrade "google-adk==2.7.0" — advisory : GitHub Security Advisory GHSA-q9cv-5mjc-7cjc
  • Ne jamais exposer adk web à un réseau non maîtrisé — cet outil est exclusivement réservé au développement local (127.0.0.1 uniquement) ; en production, utiliser adk api_server avec authentification appropriée
  • Vérifier toutes les règles réseau (security groups GCP/AWS, Kubernetes NetworkPolicies, firewall rules) pour s'assurer que le port 8000 n'est pas accessible depuis Internet ou des segments non autorisés
  • Auditer les logs d'accès au service adk web depuis le 1er janvier 2026 pour détecter des requêtes de replay de session inattendues depuis des IP externes
  • En environnement cloud : appliquer le principe de moindre privilège sur les service accounts des conteneurs exécutant adk web ; auditer les logs Cloud Audit pour détecter des appels API anormaux depuis les services concernés

⚠️ Urgence critique

CVE-2026-79696 (CVSS 10.0) dans Google ADK Python permet une exécution de code non authentifiée sur tout service adk web exposé réseau avec pytest installé. Avec l'explosion des projets d'agents IA en 2026 et la large adoption de l'ADK Google, la surface d'attaque est significative. Mettre à jour vers google-adk 2.7.0 immédiatement et restreindre l'accès réseau à adk web.

Comment savoir si mon projet Google ADK est vulnérable à CVE-2026-79696 ?

Exécutez pip show google-adk dans votre environnement virtuel ou conteneur. Si la version affichée est comprise entre 2.0.0 et 2.6.0 incluse, votre installation est vulnérable. Vérifiez si adk web est lancé : recherchez dans vos configurations Docker/Kubernetes les commandes contenant adk web, et vérifiez les ports ouverts avec netstat -tlnp | grep 8000 ou ss -tlnp | grep 8000. Si pytest est installé dans le même environnement (pip show pytest retourne une version), les conditions d'exploitation sont réunies. Mettez à jour avec pip install --upgrade "google-adk==2.7.0" et redéployez vos conteneurs.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.

Demander un audit