Aller au contenu
Blog

GitLab · GitLab CE · GitLab EE

GitLab CVE-2026-97229 au CISA KEV : exécution de code via une regex de CI/CD, corrigée en 19.2.8, 19.3.5 et 19.4.2

CVE-2026-97229 (10.0) : une regex piégée dans la CI/CD de GitLab permet d'exécuter du code sans authentification. Au CISA KEV, échéance le 1er novembre.

5 min de lectureCVE-2026-97229

CVE-2026-97229 a été publiée par NVD le 13 octobre 2026. La CISA l'a ajoutée à son catalogue KEV le 29 octobre, avec une échéance au 1er novembre : trois jours, le délai réservé aux urgences.

Le score donné par GitLab est le maximum, 10.0. Une expression régulière fabriquée pour l'occasion, placée dans une configuration CI/CD, peut mener à l'exécution de code arbitraire sur le serveur GitLab, et la description NVD précise que l'attaquant peut être non authentifié.

C'est le deuxième passage de GitLab au KEV en deux mois, après CVE-2026-85706 en septembre, elle aussi notée 10.0.


La vulnérabilité

ChampValeur
CVECVE-2026-97229
CVSS 3.1 (GitLab, CNA)10.0 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
TypeDépassement d'entier (CWE-190)
ProduitsGitLab Community Edition et Enterprise Edition
Publication NVD2026-10-13
Statut NVDUndergoing Analysis (pas encore de score NVD propre)
Ajout CISA KEV2026-10-29
Échéance CISA2026-11-01

Description NVD (extrait) :

could have allowed an unauthenticated user to execute arbitrary code on the GitLab server via a specially crafted regular expression in a CI/CD configuration, due to insufficient regular expression validation.


Ce que fait la faille

La CI/CD de GitLab accepte des expressions régulières dans ses fichiers de configuration (règles de déclenchement, filtres sur les branches ou les variables). Ces expressions sont compilées côté serveur. CVE-2026-97229 est un dépassement d'entier dans ce traitement : une expression bien choisie fait déborder un calcul, et le débordement ouvre la voie à l'exécution de code.

La note de la CISA apporte une précision que NVD ne donne pas : le problème se situe dans le compilateur d'expressions régulières Ruby/Onigmo utilisé par la CI/CD, et d'autres produits peuvent être touchés par le même défaut sous-jacent. Elle renvoie à une annonce de ruby-lang.org du 23 octobre consacrée aux correctifs regexp liés à ces CVE GitLab. Si tu maintiens des applications Ruby qui compilent des expressions régulières fournies par des utilisateurs, cette annonce te concerne aussi.

Pourquoi un 10.0

Le vecteur cumule tous les facteurs aggravants :

  • PR:N : aucun compte requis selon la description ;
  • S:C : l'impact dépasse le composant vulnérable. Un code exécuté sur le serveur GitLab touche le dépôt de code source, les secrets de CI/CD, les jetons de déploiement ;
  • C:H/I:H/A:H : confidentialité, intégrité et disponibilité toutes en impact maximal.

La description NVD précise que l'exploitation se fait « sous certaines conditions », sans les détailler. L'advisory GitLab et le ticket de suivi cités en référence sont la source pour savoir si ta configuration est concernée. En attendant, considère qu'elle l'est.

Ce qu'un serveur GitLab compromis donne à un attaquant

Un serveur GitLab est rarement un serveur comme les autres :

  • le code source de tous les projets hébergés, avec la possibilité de le modifier ;
  • les variables de CI/CD : clés cloud, identifiants de registres, jetons de déploiement ;
  • un accès indirect aux runners et, par eux, aux environnements où ils déploient.

C'est un point d'entrée vers la chaîne d'approvisionnement logicielle de l'entreprise, pas seulement vers une machine.


Versions affectées

BrancheVersions affectées (NVD)Première version hors plage
19.219.2.0 → 19.2.719.2.8
19.319.3.0 → 19.3.419.3.5
19.419.4.0 → 19.4.119.4.2

Les deux éditions, Community (CE) et Enterprise (EE), sont concernées avec les mêmes bornes.

⚠️ Ces numéros sont les bornes issues de NVD. GitLab publie régulièrement des patch releases : installe la dernière version de ta branche, pas forcément celle du tableau. La description NVD ne cite que les branches 19.2 à 19.4 ; pour une branche plus ancienne, la réponse est une migration vers une branche maintenue, et l'advisory GitLab (« patch release 19.4.2 ») fait foi.

Vérifier ta version :

sudo gitlab-rake gitlab:env:info

ou, depuis l'interface, Admin > Tableau de bord.


Détection

  • Fichiers .gitlab-ci.yml modifiés récemment avec des expressions régulières inhabituellement longues ou complexes, en particulier dans des projets publics ou des forks
  • Pipelines déclenchés par des comptes inconnus ou depuis des projets que personne ne suit
  • Processus enfants inattendus lancés par les processus Ruby de GitLab (Puma, Sidekiq) sur le serveur
  • Connexions sortantes initiées par le serveur GitLab vers des destinations inconnues
  • Lecture ou modification de variables CI/CD et de jetons d'accès sans ticket correspondant

L'entrée KEV renvoie aux exigences de triage forensique de la directive BOD 26-04 : une mise à jour seule ne suffit pas si l'instance était exposée.


Mitigation

1. Mettre à jour

19.2.8, 19.3.5, 19.4.2 au minimum, ou plus récent. L'échéance CISA est le 1er novembre.

2. Si la mise à jour doit attendre quelques heures

  • Retirer l'instance d'Internet ou la placer derrière un VPN
  • Désactiver l'inscription libre et revoir qui peut créer des projets et lancer des pipelines
  • Surveiller les modifications de configuration CI/CD

Ce ne sont que des mesures d'attente : elles réduisent l'exposition, elles ne corrigent rien.

3. Si l'instance était exposée avant le correctif

  1. Faire tourner les variables CI/CD sensibles, les jetons d'accès personnels et de déploiement, les clés des runners
  2. Contrôler les commits récents sur les branches protégées
  3. Vérifier les comptes administrateurs et les clés SSH ajoutées récemment
  4. Examiner les journaux applicatifs (/var/log/gitlab/) sur la période entre le 13 octobre et la mise à jour

Pourquoi surveiller en continu ton instance GitLab

Seize jours séparent la publication de CVE-2026-97229 de son entrée au KEV. Une équipe qui suit les avis GitLab l'a vue passer le 13 octobre ; une équipe qui attend le prochain cycle de patch découvre l'urgence avec trois jours de délai.

Avec cveo.tech, enregistre la version exacte de ton GitLab et reçois une alerte dès qu'une CVE qui la concerne est publiée ou entre au catalogue CISA KEV.

Tu as des GitLab ? Sache quelles CVE touchent ta version.

Ajoute le produit et sa version : cveo.tech affiche tout de suite les CVE qui le concernent, puis t'alerte par email quand une nouvelle CVE le concerne — y compris avant que NVD ait fini son analyse. Gratuit, il suffit d'un compte.

Chaque lundi

Les CVE critiques de la semaine, dans ta boîte mail

Un email par semaine : les vulnérabilités CVSS ≥ 9 publiées ces sept derniers jours, et nos dernières analyses. Rien d'autre.

Double confirmation par email. Désinscription en un clic, à tout moment.