Contexte et portée

GitLab propose un service AI Gateway qui relie une instance GitLab aux modèles d'IA externes. La vulnérabilité, identifiée sous le numéro CVE‑2026‑90970, reçoit un score CVSS de 9.9/10, classée critique. Elle concerne les déploiements auto‑hébergés : toutes les versions de l'image Docker ou du chart Helm comprises entre 18.1.6 et 19.1 sont affectées. Les versions corrigées sont 19.2.4, 19.3.2 et 19.4.1. Les clients de GitLab.com, GitLab Dedicated ou les instances auto‑gérées utilisant un gateway hébergé par GitLab ne sont pas concernés. Le US‑CISA a indiqué qu’aucune exploitation connue n’est répertoriée.

Mécanisme de la vulnérabilité

Le défaut réside dans le moteur de rendu du modèle de prompt d’un « custom flow » créé sur la plateforme Duo Agent. Un utilisateur authentifié disposant d’un accès Duo Agent Platform peut injecter une configuration de flux spécialement conçue pour sortir du bac à sable du modèle de prompt. Cette sortie permet l’exécution arbitraire de commandes sur le serveur du gateway. Le gateway conserve les clés de signature JSON Web Token (JWT), considérées comme des informations d’identification sensibles, et assure la communication entre GitLab, le client et les fournisseurs de modèles d’IA. Le problème appartient à la classe CWE‑1336 (faiblesse du moteur de templates).

Correction et procédure de mise à jour

GitLab a publié les images Docker et les charts Helm corrigés. Pour un déploiement Docker, il faut arrêter le conteneur en cours, le supprimer, puis récupérer la nouvelle image :

docker pull registry.gitlab.com/gitlab/ai-gateway:self-hosted-v19.4.1-ee
docker run -d --name gitlab-ai-gateway \
  -p 8080:8080 registry.gitlab.com/gitlab/ai-gateway:self-hosted-v19.4.1-ee

Pour Helm, il suffit de mettre à jour le champ image.tag du chart avec la version correspondante (19.2.4, 19.3.2 ou 19.4.1) puis d’exécuter helm upgrade. Aucun contournement n’est fourni ; les administrateurs doivent appliquer la mise à jour dès que possible.

Implications de sécurité

Une exécution de code sur le gateway donne accès aux clés JWT et aux flux de données entre GitLab et les fournisseurs d’IA, ce qui pourrait compromettre l’intégrité des dépôts et la confidentialité des modèles. L’absence de mécanisme de détection intégré rend difficile la vérification d’éventuelles compromissions antérieures. Même si aucune attaque n’a été signalée, le niveau de gravité justifie une mise à jour immédiate pour éviter une escalade de privilèges au sein de l’infrastructure CI/CD.