Une issue GitHub sans privilèges peut compromettre les runners CI de Claude Code et Gemini CLI

Une recherche de Novee Security a montré qu’un utilisateur ne disposant d’aucun privilège particulier peut exploiter une issue GitHub pour exécuter du

Une issue GitHub sans privilèges peut compromettre les runners CI de Claude Code et Gemini CLI
Vulnérabilités

Image d’illustration générée par IA

Une recherche de Novee Security a montré qu’un utilisateur ne disposant d’aucun privilège particulier peut exploiter une issue GitHub pour exécuter du code sur les runners CI utilisés par les dépôts d’Anthropic et de Google. Cette technique peut également modifier le déroulement des agents dans les workflows OpenAI.

Les tests ont porté sur les configurations par défaut distribuées par les éditeurs. La recherche a été présentée à Black Hat USA le 5 août 2026 ; l’information a été rendue publique le 7 août 2026.

Les fiches CISA indiquent exploitation: none pour les deux CVE. Aucun élément ne permet de confirmer des attaques visant des cibles réelles.

Le problème commun réside dans l’agent harness

La faille concerne l’« harness », le code qui relie le modèle au système d’exploitation, aux outils et aux workflows CI. Un composant considère une valeur comme fiable, tandis qu’un composant ultérieur l’interprète avec des privilèges plus élevés.

Ainsi, un contenu contrôlé par un utilisateur externe peut franchir les contrôles et atteindre un point d’exécution privilégié. L’attaque ne nécessite pas forcément de convaincre le modèle d’exécuter une commande : dans certains cas, le payload est traité directement par l’infrastructure.

Le risque augmente dans les dépôts où les issues peuvent déclencher des workflows, où les agents disposent d’un accès au checkout et où les étapes suivantes réutilisent des fichiers modifiés par l’agent.

Gemini CLI : injection de commandes avant la sandbox

Google a corrigé CVE-2026-12537, une vulnérabilité d’injection de commandes dans le launcher des conteneurs de Gemini CLI. La faille obtient un score CVSS v4 de 10,0.

Un attaquant sans privilèges pouvait préparer un fichier .gemini/.env et obtenir l’exécution de commandes sur le système hôte d’une plateforme CI headless, avant le démarrage de la sandbox. Il n’était pas nécessaire de persuader le modèle d’exécuter la commande.

La vulnérabilité concernait également la gestion de l’allowlist des outils. Les contrôles étaient effectués lors de l’enregistrement, mais n’étaient pas correctement appliqués au moment de l’exécution. Avec l’option --yolo, chaque commande demandée par le modèle était en outre automatiquement approuvée.

Les versions corrigées sont :

  • Gemini CLI 0.39.1
  • run-gemini-cli 0.1.22

Google a inclus dans le même advisory le correctif du launcher et celui de l’allowlist, en précisant que l’intervention concerne l’ensemble des GitHub Actions de Gemini CLI.

Claude Code : exfiltration de la clé et contournement du validateur

Anthropic a corrigé CVE-2026-54316, une vulnérabilité permettant d’exfiltrer une clé API via le compteur public de téléchargements de Hugging Face. Le secret pouvait être transmis caractère par caractère.

La condition préalable était la présence de contenu non fiable dans le contexte de Claude Code. Anthropic attribue à la faille un score CVSS v4 de 6,0, de niveau Moderate, tandis que la NVD indique un score CVSS v3.1 de 9,1. Ces deux scores reposent sur des versions différentes du système CVSS et ne sont pas directement comparables.

La version corrigée est Claude Code 2.1.163. Les versions comprises entre 0.2.54 et 2.1.163 sont indiquées comme concernées.

Une seconde chaîne n’a fait l’objet d’aucun CVE ni d’une version corrigée officiellement annoncée. Le validateur de commandes supprimait le texte placé entre apostrophes avant d’effectuer 23 contrôles. Ce comportement est normalement correct pour Bash, mais permettait de dissimuler un payload dans la valeur de l’option --receive-pack de git push.

Git exécutait ensuite ce paramètre en laissant le payload inchangé sur le runner. Le contrôle était donc réussi, tandis que la commande finale pouvait exécuter du code.

Codex : le risque provient du partage du checkout

Dans le dépôt openai/codex, deux étapes de l’agent étaient exécutées dans le même job et partageaient le même checkout. La première pouvait modifier AGENTS.md, un fichier que la seconde chargeait comme un ensemble d’instructions.

En outre, l’échec de la validation JSON entre les deux étapes pouvait tout de même déclencher le second agent. Un fichier écrit par une étape moins fiable pouvait ainsi influencer l’exécution suivante.

La configuration actuelle sépare les étapes dans des jobs distincts, utilise Codex avec drop-sudo et active une sandbox en lecture seule. La documentation d’OpenAI considère les fichiers d’instructions du dépôt comme des entrées non fiables et recommande d’exécuter Codex en dernière étape du job.

Il n’est pas démontré que Codex traite différemment un fichier d’instructions accessible en écriture. La mesure d’atténuation documentée concerne le workflow et l’isolation des étapes.

Comment réduire le risque dans les workflows CI

Les administrateurs devraient :

  • mettre à jour Gemini CLI vers la 0.39.1 ;
  • mettre à jour run-gemini-cli vers la 0.1.22 ;
  • mettre à jour Claude Code vers la 2.1.163 ;
  • vérifier les workflows pouvant être déclenchés par des issues ou des utilisateurs externes ;
  • traiter AGENTS.md, .gemini/.env et tout autre fichier du dépôt comme des entrées non fiables ;
  • séparer les agents dans des jobs distincts ;
  • utiliser une sandbox en lecture seule et drop-sudo, lorsque ces options sont disponibles ;
  • exécuter l’agent en dernière étape du job.

Il est également recommandé d’inspecter les dépôts afin de détecter toute modification inattendue des fichiers d’instructions, des workflows et des configurations des agents. Un laboratoire public permettant de reproduire la faille de Claude Code est disponible depuis le 18 juin, mais aucun élément ne permet de confirmer l’exploitation opérationnelle des chaînes décrites.

Dossiers sécurité

À lire aussi

Sources

Cet article est une réécriture originale fondée sur les sources ci-dessous.

CVE traitées dans cet article

Retour à l'accueil

Dernières actualités cybersécurité

Toutes les actualités cybersécurité →