Vulnérabilité critique dans l'IA Gateway de GitLab : exécution de commandes à distance (CVE-2026-90970, score CVSS 9.9)
Célestine Rochefour
Le 2 octobre 2026, GitLab a publié un correctif pour une faille de sécurité affectant sa passerelle d’intelligence artificielle (IA Gateway). Cette vulnérabilité, référencée CVE-2026-90970, obtient un score CVSS de 9,9 sur 10, soit le maximum dans la catégorie critique. Elle permet à un utilisateur authentifié ayant accès à la Duo Agent Platform d’exécuter des commandes arbitraires sur la passerelle auto-hébergée. Dans cet article, nous détaillons la nature de la faille, les versions concernées, les correctifs disponibles et les mesures à prendre pour protéger votre infrastructure.
Une faille critique dans le service d’IA de GitLab
GitLab a dévoilé le 2 octobre 2026 une vulnérabilité de type injection de commandes dans son IA Gateway, module chargé de relier une instance GitLab aux modèles d’intelligence artificielle. La CVE-2026-90970, qualifiée de critique, affecte uniquement les organisations qui hébergent leur propre passerelle. Celles qui utilisent la passerelle gérée par GitLab (GitLab.com, GitLab Dedicated) sont protégées automatiquement, sans action de leur part.
“La faille pourrait permettre à un utilisateur connecté disposant d’un accès à la Duo Agent Platform d’exécuter des commandes sur la passerelle dans certaines conditions.” - Avis de sécurité GitLab
Ce problème survient alors que l’adoption de l’IA dans les workflows DevOps s’accélère. GitLab propose une passerelle auto-hébergée pour conserver les données des requêtes et réponses d’IA au sein de l’environnement client. Les équipes de sécurité doivent donc traiter cette mise à jour avec la plus grande urgence.
Qu’est-ce que l’IA Gateway de GitLab ?
L’IA Gateway est un service qui agit comme intermédiaire entre une instance GitLab et des fournisseurs de modèles d’IA (OpenAI, Anthropic, etc.). Elle permet d’exposer des fonctionnalités d’IA dans les pipelines CI/CD, les tickets et les projets. Lorsqu’elle est auto-hébergée, la passerelle gère les clés de signature des JSON Web Tokens (JWT) et maintient la connexion avec les modèles.
Selon GitLab, la passerelle auto-hébergée stocke des informations sensibles comme les clés JWT, qui doivent être traitées comme des secrets d’infrastructure. Une compromission de la passerelle peut donc entraîner une fuite de données ou un accès non autorisé aux modèles d’IA.
La Duo Agent Platform, qui est une plateforme de workflow automatisés propulsée par l’IA, est concernée ici. Les utilisateurs ayant les droits nécessaires peuvent créer des flows personnalisés (custom flows) exécutant plusieurs tâches. La faille CVE-2026-90970 réside dans le template d’invite (prompt template) d’un de ces flows.
Détails techniques de la vulnérabilité CVE-2026-90970
Classification et impact
| Élément | Valeur |
|---|---|
| Identifiant | CVE-2026-90970 |
| Score CVSS | 9.9 (Critique) |
| Classe CWE | CWE-1336 (Injection dans un moteur de template) |
| Condition d’accès | Utilisateur authentifié avec accès Duo Agent Platform |
| Exploitation observée | Aucune (selon CISA au 2 octobre 2026) |
Mécanisme d’attaque
Selon l’avis de GitLab, la faille se situe dans le prompt template d’un flux personnalisé. Un attaquant disposant des accès suffisants peut échapper au sandbox du template via une configuration de flux spécialement conçue. Cette évasion permet une exécution de commandes arbitraires sur la passerelle.
“The flaw could allow a logged-in user with Duo Agent Platform access to escape the prompt template sandbox via a specially crafted flow configuration.” - Résumé de l’avis GitLab
Les détails exacts sur les prérequis ou les rôles utilisateurs nécessaires ne sont pas divulgués par GitLab. On sait seulement que l’accès à la Duo Agent Platform est requis. La gravité est maximale car la passerelle auto-hébergée héberge des clés de signature et un accès au réseau interne.
Versions concernées et correctifs disponibles
Seules les organisations qui hébergent leur propre passerelle doivent agir. GitLab a corrigé la faille dans les versions suivantes de la passerelle IA :
- 19.2.4 (première version corrigée de la branche 19.2)
- 19.3.2 (branche 19.3)
- 19.4.1 (branche 19.4)
Aucun correctif n’est prévu pour les versions antérieures à 19.2.4. Toutes les versions de la passerelle à partir de 18.1.6 jusqu’à 19.1 inclus sont donc affectées sans correctif disponible.
| Gamme de versions | Première version corrigée |
|---|---|
| 18.1.6 à 19.2.3 | 19.2.4 |
| 19.3.x antérieur à 19.3.2 | 19.3.2 |
| 19.4.x antérieur à 19.4.1 | 19.4.1 |
Important : La politique de maintenance de GitLab au 2 octobre 2026 ne couvre que les branches 19.4, 19.3 et 19.2. Les versions plus anciennes (19.1 et avant) ne reçoivent plus de mises à jour de sécurité. GitLab ne mentionne aucun workaround pour les organisations qui ne peuvent pas mettre à jour immédiatement.
Comment mettre à jour votre passerelle auto-hébergée
La mise à jour varie selon le mode de déploiement : conteneur Docker ou Helm.
Mise à jour Docker
- Arrêtez le conteneur en cours d’exécution :
docker stop <nom_du_conteneur> - Supprimez le conteneur :
docker rm <nom_du_conteneur> - Tirez la nouvelle image (exemple pour GitLab 19.4) :
docker pull registry.gitlab.com/gitlab-org/gitlab/gitlab-ee:19.4.1-ee.0 - Relancez le conteneur avec les mêmes paramètres que précédemment.
Mise à jour Helm
- Modifiez la charte Helm en définissant la nouvelle version de l’image dans la variable
image.tag, puis appliquez les changements :helm upgrade --set image.tag=19.4.1-ee.0 <nom_du_deploiement>
Important : GitLab recommande de toujours aligner la version de la passerelle avec la version de votre instance GitLab (même minor version). Pour la branche 19.2, utilisez l’image 19.2.4 ; pour 19.3, 19.3.2 ; pour 19.4, 19.4.1. Aucune indication n’est fournie sur la compatibilité d’une version de passerelle avec une instance GitLab plus ancienne.
Comparaison avec une précédente faille (CVE-2026-1868)
En février 2026, GitLab avait corrigé une autre vulnérabilité de sa passerelle IA, CVE-2026-1868, également notée 9.9 CVSS. Cette faille permettait à un utilisateur authentifié d’atteindre une exécution de code ou un déni de service via une définition de flux malveillante. Les deux failles partagent la même classe CWE (CWE-1336 : Improper Neutralization of Special Elements used in a Template Engine - mauvaise neutralisation d’éléments spéciaux dans un moteur de template).
Voici les points communs et différences :
| Critère | CVE-2026-90970 | CVE-2026-1868 |
|---|---|---|
| Score CVSS | 9.9 | 9.9 |
| Type | Exécution de commandes | Exécution de code / DoS |
| Vecteur | Prompt template de flow | Flow definition |
| Correctifs | 19.2.4, 19.3.2, 19.4.1 | 17.8.6, 18.1.4, 18.2.3 |
| CWE | CWE-1336 | CWE-1336 |
Cette répétition de failles de même nature soulève des questions sur la maturité du code de la passerelle IA. GitLab n’a pas mentionné la faille précédente dans son avis d’octobre.
Conclusion : Agir sans tarder
La vulnérabilité critique CVE-2026-90970 dans l’IA Gateway de GitLab expose les organisations auto-hébergées à un risque élevé de compromission. Aucune exploitation active n’a été rapportée à ce jour, mais la publication du correctif et des détails techniques pourrait inciter des attaquants à tenter l’exploitation. Les équipes doivent prioriser la mise à jour vers les versions 19.2.4, 19.3.2 ou 19.4.1, et vérifier qu’aucun accès non autorisé n’a eu lieu avant l’application du correctif. GitLab ne fournissant pas de méthode de détection, une analyse forensique des logs de la passerelle peut être nécessaire.
En l’absence de workaround, la seule parade est la mise à jour. La Cybersécurité française (ANSSI) recommande de suivre les avis des éditeurs et d’appliquer les correctifs dans les 48 heures pour les failles critiques. Ne tardez pas.