GitLab corrige une faille critique (CVSS 9.9) dans son AI Gateway : exécution de commandes sur les serveurs auto-hébergés
Églantine Montclair
Près d’un an après une première faille à 9.9, l’AI Gateway de GitLab révèle une nouvelle vulnérabilité critique
En octobre 2026, GitLab a publié un bulletin de sécurité pour une faille classée 9.9 sur 10 dans son AI Gateway, identifiée sous la référence CVE-2026-90970. Cette vulnérabilité permet à un utilisateur authentifié disposant d’un accès à la plateforme Duo Agent d’exécuter des commandes sur le serveur hébergeant la passerelle. Seules les organisations qui hébergent leur propre AI Gateway sont concernées ; les clients de GitLab.com et les instances gérées par GitLab n’ont aucune action à entreprendre. Ce correctif intervient dans un contexte où l’IA générative occupe une place croissante dans les chaînes CI/CD, rendant chaque composant d’infrastructure critique. Nous vous proposons une analyse détaillée de cette vulnérabilité, des versions affectées, et des mesures à prendre immédiatement.
Comprendre l’AI Gateway de GitLab et les risques associés
Rôle de l’AI Gateway dans l’écosystème GitLab
L’AI Gateway est un service qui fait le lien entre une instance GitLab et des modèles d’IA (par exemple, pour la génération de code, l’analyse de logs, ou l’automatisation de tâches). Il agit comme un proxy sécurisé qui achemine les requêtes des utilisateurs vers les API des modèles (OpenAI, Anthropic, modèles auto-hébergés, etc.) tout en gérant l’authentification, le chiffrement et la journalisation. Les organisations qui souhaitent conserver leurs données d’IA dans leur propre environnement peuvent déployer leur propre AI Gateway, plutôt que d’utiliser celle hébergée par GitLab.
Cette passerelle détient des clés de signature pour les JSON Web Tokens (JWT) utilisés pour l’authentification, ainsi que des accès aux API des modèles d’IA. Une compromission de l’AI Gateway expose donc l’ensemble de l’infrastructure d’IA : fuite de données, exécution de code malveillant, et potentiel pivot vers d’autres systèmes internes.
Pourquoi les installations auto-hébergées sont particulièrement vulnérables
GitLab déploie et maintient ses propres passerelles pour les abonnés de GitLab.com et les instances GitLab Dedicated. Ces passerelles sont mises à jour automatiquement par GitLab. En revanche, les clients qui choisissent d’auto-héberger leur AI Gateway (via Docker ou Helm) sont responsables de l’application des correctifs. Le bulletin de sécurité précise que ces clients ont été avertis avant la publication publique, mais il reste crucial de vérifier que la mise à jour a bien été effectuée.
“The gateway is the service that connects a GitLab instance to AI models, and only organizations that host their own gateway need to act.” - Extrait du bulletin GitLab (traduit : « La passerelle est le service qui connecte une instance GitLab aux modèles d’IA, et seules les organisations qui hébergent leur propre passerelle doivent agir. »)
Détails techniques de la faille CVE-2026-90970
Score CVSS 9.9 : les raisons d’une criticité maximale
Le score CVSS de 9.9/10 place cette vulnérabilité au niveau critique. Les facteurs qui justifient cette note sont :
- Vecteur réseau : l’attaque peut être menée à distance, via le réseau.
- Complexité faible : aucune condition particulière autre qu’un accès authentifié à la plateforme Duo Agent.
- Aucun privilège supplémentaire requis : l’attaquant n’a pas besoin d’être administrateur, seulement d’avoir un accès légitime à la fonctionnalité Duo Agent.
- Impact élevé sur la confidentialité, l’intégrité et la disponibilité : l’exécution de commandes arbitraires permet de lire, modifier ou supprimer des données, ainsi que de perturber le service.
À titre de comparaison, une note de 9.9 est extrêmement rare. Seules quelques vulnérabilités de l’histoire de GitLab ont atteint ce niveau (CVE-2026-1868 en février 2026, également sur l’AI Gateway). D’après la base de données CVE, moins d’une centaine de failles dans les applications de collaboration obtiennent un score supérieur à 9.0 chaque année.
Mécanisme d’attaque : échappement du sandbox de template
La faille réside dans le template de prompt d’un flux personnalisé (custom flow). Dans la plateforme Duo Agent, les utilisateurs peuvent créer des workflows automatisés en plusieurs étapes, alimentés par l’IA. Ces workflows utilisent des templates de prompt, qui sont traités par un moteur de modèle. Le bulletin précise qu’un utilisateur malveillant, disposant d’un accès à Duo Agent, peut “escape the prompt template sandbox via a specially crafted flow configuration”, c’est-à-dire contourner l’isolation du moteur de template pour exécuter des commandes sur la passerelle.
Cette catégorie de vulnérabilité correspond au CWE-1336 (Injection de code dans un moteur de template). Elle est similaire à celle corrigée en février 2026 (CVE-2026-1868). Le fait que deux failles de même nature apparaissent en quelques mois suggère une surface d’attaque persistante dans la conception des flux personnalisés. GitLab n’a pas communiqué sur les améliorations apportées au processus de validation des templates pour éviter de futures récidives.
Conditions préalables et vecteur d’attaque
Pour exploiter la faille, l’attaquant doit :
- Posséder un compte utilisateur sur l’instance GitLab avec accès à la plateforme Duo Agent. Cela inclut potentiellement des développeurs, des chefs de projet, ou des intégrateurs autorisés à créer des workflows.
- Créer ou modifier un flux personnalisé en injectant une configuration spécialement conçue dans le template de prompt.
- Soumettre le flux, ce qui déclenche le traitement par le moteur de template vulnérable.
GitLab n’a pas précisé si l’attaque nécessite une interaction humaine supplémentaire ou si elle peut être automatisée. Toutefois, la simplicité apparente de la condition d’accès (un simple utilisateur authentifié) rend cette faille particulièrement dangereuse dans des environnements où de nombreux collaborateurs disposent de droits sur Duo Agent.
“A logged-in user with Duo Agent Platform access could have used the flaw to escape the prompt template sandbox via a specially crafted flow configuration.” - GitLab Security Advisory
Versions affectées et correctifs disponibles
Le tableau ci-dessous récapitule les versions de l’AI Gateway impactées et les versions corrigées. Il s’agit de versions du gateway lui-même, pas de GitLab core.
| Version de l’AI Gateway | Première version corrigée |
|---|---|
| 18.1.6 à 19.1.x (non listée) | 19.2.4 |
| 19.2.0 à 19.2.3 | 19.2.4 |
| 19.3.0 à 19.3.1 | 19.3.2 |
| 19.4.0 (avant 19.4.1) | 19.4.1 |
Les versions antérieures à 18.1.6 ne semblent pas concernées, mais GitLab n’a pas fourni de correctif pour les lignes 18.x. Les administrateurs utilisant une version comprise entre 18.1.6 et 19.1.9 (par exemple) doivent passer à la version 19.2.4 ou ultérieure, à condition que cette version soit compatible avec leur instance GitLab. Le bulletin n’indique pas explicitement si la version 19.2.4 du gateway fonctionne avec GitLab 19.1 ou antérieur. GitLab recommande de toujours aligner le numéro de version de l’AI Gateway sur celui de l’instance GitLab principale.
Aucun contournement (workaround) n’est disponible pour les passerelles qui ne peuvent pas être mises à jour immédiatement. Il n’existe pas non plus de méthode automatisée pour vérifier si un gateway a été compromis avant la mise à jour. Nous vous conseillons donc, en l’absence de correctif pour les anciennes lignes, de planifier une migration rapide vers une version supportée.
Procédure de mise à jour pour les administrateurs
Si vous hébergez votre propre AI Gateway, voici les étapes à suivre selon votre mode de déploiement.
Mise à jour d’un déploiement Docker
- Arrêter et supprimer le conteneur existant :
docker stop <nom_du_conteneur> docker rm <nom_du_conteneur> - Télécharger la nouvelle image :(Remplacez par la version correspondant à votre besoin : 19.2.4 ou 19.3.2)
docker pull gitlab-org/gitlab-ai-gateway:self-hosted-v19.4.1-ee - Relancer le conteneur avec les mêmes paramètres de configuration (volumes, variables d’environnement, ports) :
docker run -d --name gitlab-ai-gateway \ -v /path/to/config:/etc/gitlab-ai-gateway \ -e GITLAB_AI_GATEWAY_SECRET_KEY=... \ -p 8080:8080 \ gitlab-org/gitlab-ai-gateway:self-hosted-v19.4.1-ee - Vérifier que le service répond : accéder à l’URL de santé et consulter les logs.
Mise à jour d’un déploiement Helm (Kubernetes)
- Modifier la valeur de l’image dans le chart Helm :
image: repository: gitlab-org/gitlab-ai-gateway tag: self-hosted-v19.4.1-ee - Appliquer la mise à jour :
helm upgrade <nom_du_release> <chart> --set image.tag=self-hosted-v19.4.1-ee - Surveiller le déploiement et vérifier que les pods redémarrent correctement.
Important : Les clés JWT signées par l’ancien gateway restent valides jusqu’à leur expiration. Il est recommandé de renouveler les jetons après la mise à jour, en coordonnant le changement avec les utilisateurs.
Absence de contournement et recommandations
GitLab n’a fourni aucun contournement pour les installations qui ne peuvent pas être mises à jour immédiatement. Dans l’attente d’un correctif, la seule mesure de réduction des risques consiste à limiter l’accès à la plateforme Duo Agent. Plus précisément :
- Désactiver temporairement la fonctionnalité Duo Agent pour tous les utilisateurs non essentiels.
- Restreindre la création de flux personnalisés aux seuls administrateurs.
- Surveiller les logs de l’AI Gateway pour détecter des schémas anormaux (tentatives d’exécution de commandes, échecs d’authentification, etc.).
- Mettre en place un Web Application Firewall (WAF) ou un reverse proxy capable de filtrer les requêtes suspectes, bien que GitLab n’ait pas publié de règle spécifique.
La CISA (Cybersecurity and Infrastructure Security Agency) a évalué la vulnérabilité le 2 octobre 2026 en indiquant qu’aucune exploitation active n’avait été observée à cette date, et qu’aucune preuve de concept publique n’était connue. Toutefois, ce type d’information évolue rapidement. Nous vous recommandons de considérer cette menace comme imminente, étant donné la simplicité d’exploitation et l’existence d’une faille similaire antérieure.
Enseignements pour la sécurité des pipelines IA
Une deuxième faille similaire dans l’année
Ce n’est pas la première fois que l’AI Gateway de GitLab est frappée par une vulnérabilité critique. En février 2026, la CVE-2026-1868, également notée 9.9, permettait à un utilisateur authentifié de provoquer un déni de service ou une exécution de code via une définition de flux malveillante. Cette faille appartenait à la même classe CWE-1336 (injection dans un moteur de template). La récurrence de ce type de vulnérabilité indique que les mécanismes de validation des templates de prompt n’ont pas été suffisamment renforcés après le premier incident.
Pour les RSSI et équipes sécurité, cela souligne l’importance de :
- Évaluer la maturité sécuritaire des fonctionnalités IA dans les outils DevOps. Les composants d’IA sont souvent nouveaux, avec moins de recul sur leur surface d’attaque.
- Limiter les droits d’accès aux fonctionnalités de template et de flux personnalisés. Le principe du moindre privilège s’applique pleinement ici : seuls les utilisateurs ayant un besoin métier avéré devraient pouvoir créer ou modifier des workflows automatisés.
- Mettre en place un processus de mise à jour accélérée pour les passerelles IA, en les considérant comme des composants critiques au même titre que le serveur GitLab principal.
Bonnes pratiques pour sécuriser son AI Gateway
- Utiliser l’AI Gateway hébergée par GitLab si la réglementation interne le permet. Cela transfère la responsabilité des correctifs à GitLab.
- Si l’auto-hébergement est indispensable, suivre rigoureusement les versions supportées et planifier les mises à jour dans les 24 à 48 heures suivant la publication d’un correctif de sécurité.
- Segmenter le réseau : l’AI Gateway ne doit pas avoir d’accès direct aux bases de données internes ou aux serveurs non essentiels. Les communications avec les API d’IA doivent transiter par un proxy dédié, avec inspection TLS.
- Surveiller les logs de la passerelle en temps réel, notamment les erreurs de syntaxe de template, les accès inhabituels à Duo Agent, et les tentatives de connexion échouées.
- Effectuer des audits de code réguliers sur les flux personnalisés existants, en recherchant des configurations suspectes (injection de commandes, valeurs non encodées).
Un exemple concret : chez une entreprise française du secteur bancaire, un administrateur avait activé l’AI Gateway pour automatiser l’analyse de logs de transactions. Seuls trois collaborateurs avaient accès à Duo Agent. Après la correction de CVE-2026-1868, l’équipe sécurité a élargi la surveillance aux événements de template et restreint la création de flux à un compte technique dédié. Cette approche a permis de limiter l’exposition pour CVE-2026-90970.
Conclusion : agir immédiatement, anticiper les prochaines vulnérabilités
La correction de cette faille critique dans l’AI Gateway de GitLab rappelle que les composants d’IA doivent être traités avec le même niveau de priorité que le cœur de l’infrastructure DevOps. Les organisations auto-hébergées doivent appliquer les correctifs sans attendre, en suivant les procédures décrites ci-dessus. L’absence d’exploitation connue à ce jour ne doit pas conduire à la complaisance : des preuves de concept pourraient être publiées prochainement, augmentant le risque d’attaques.
Au-delà de la mise à jour, tirez les leçons de cette deuxième vulnérabilité de même nature : investissez dans une revue approfondie des mécanismes de template, durcissez les listes de contrôle d’accès, et préparez-vous à réagir rapidement face aux prochains correctifs de sécurité. La sécurisation des pipelines IA n’est pas une option, c’est une nécessité pour protéger vos données et la continuité de vos opérations.
Références : GitLab Security Advisory (2 octobre 2026), CISA Vulnerability Assessment (2 octobre 2026), HackerOne rapport par invisiblemeerkat.