CVE-2026-97229 est une vulnérabilité CVSS 10.0 dans GitLab CE/EE permettant l'exécution de code distante sans authentification via une expression régulière forgée dans un fichier de configuration CI/CD, corrigée le 12 octobre 2026.
En bref
- CVE-2026-97229 — RCE sans authentification CVSS 10.0 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H) dans GitLab CE/EE, integer overflow dans le compilateur de regex du pipeline CI/CD
- Versions affectées : GitLab CE/EE 18.1 jusqu'à 19.4.1 (instances auto-hébergées) — GitLab.com et les instances Dedicated sont déjà corrigées
- Action urgente : mettre à jour vers GitLab 19.4.2, 19.3.4 ou 19.2.8 — patches critiques publiés le 12 octobre 2026 — aucune mitigation temporaire satisfaisante disponible sans mise à jour
Les faits
Le 12 octobre 2026, GitLab a publié des releases de sécurité critiques (GitLab Security Release 19.4.2, 19.3.4 et 19.2.8) corrigeant CVE-2026-97229, une vulnérabilité de type integer overflow dans le compilateur d'expressions régulières (regex) du moteur de pipeline CI/CD. Avec un score CVSS v3.1 de 10.0 — le maximum absolu — et un vecteur d'attaque entièrement réseau, sans privilèges requis ni interaction utilisateur, et avec un scope modifié, cette vulnérabilité représente la criticité théorique maximale pour un bug logiciel. Elle permet à n'importe quel utilisateur non authentifié d'exécuter du code arbitraire sur un serveur GitLab auto-hébergé en soumettant simplement un fichier de configuration CI/CD contenant une regex spécialement forgée.
La vulnérabilité a été découverte et rapportée à GitLab par le chercheur en sécurité joaxcar via le programme de bug bounty HackerOne de GitLab. La découverte a été réalisée dans le cadre d'une analyse approfondie du moteur de traitement des fichiers .gitlab-ci.yml, et plus spécifiquement du composant chargé de valider et compiler les expressions régulières utilisées dans les règles de déclenchement des pipelines (clauses if des sections rules, only et except).
Sur le plan technique, CVE-2026-97229 exploite un integer overflow (dépassement d'entier) dans la bibliothèque de compilation regex intégrée à GitLab. Lorsqu'un fichier .gitlab-ci.yml contient une expression régulière d'une complexité ou d'une longueur particulière, le calcul de la taille du buffer nécessaire à la compilation de cette regex produit un entier qui dépasse la valeur maximale représentable par le type entier utilisé (typiquement 2^31 - 1 pour un entier signé 32 bits), ce qui provoque un retour à une valeur proche de zéro ou négative. Ce buffer sous-dimensionné est ensuite alloué, et les données de compilation de la regex dépassent les limites du buffer, créant une situation d'écriture hors limites (out-of-bounds write) qui peut être exploitée pour rediriger le flux d'exécution vers du code contrôlé par l'attaquant.
Ce qui rend CVE-2026-97229 particulièrement dangereuse est l'architecture de traitement des fichiers CI/CD de GitLab. Lors de la création ou de la mise à jour d'une merge request, ou lors d'un push, GitLab analyse et valide le fichier .gitlab-ci.yml du projet concerné. Ce traitement se produit côté serveur, au niveau du processus GitLab principal (Puma/Sidekiq), sans nécessiter d'authentification pour les dépôts publics. Même pour les dépôts privés, un attaquant disposant d'un compte non privilégié de niveau Guest, voire d'un compte créé via une inscription publique si elle est activée, peut déclencher le parsing du fichier CI/CD vulnérable.
L'impact du scope modifié (S:C dans le vecteur CVSS) reflète le fait qu'un attaquant réussissant à exploiter cette vulnérabilité obtient non seulement le contrôle du processus GitLab vulnérable, mais peut potentiellement accéder à l'ensemble des ressources du système hôte, y compris les secrets des pipelines CI/CD d'autres projets, les tokens d'accès stockés, les clés SSH des dépôts, les configurations de déploiement vers des environnements de production, et tout autre credential transitant par le système GitLab. Dans les organisations utilisant GitLab comme hub central de leur chaîne DevSecOps, la compromission du serveur équivaut potentiellement à la compromission de l'ensemble de la chaîne de livraison logicielle.
Les versions affectées couvrent GitLab CE (Community Edition) et EE (Enterprise Edition) de la version 18.1 jusqu'à 19.4.1 inclus. GitLab.com (l'instance cloud gérée par GitLab Inc.) et les instances GitLab Dedicated ont été mises à jour avant la publication de l'advisory et ne sont pas exposées. Seules les instances auto-hébergées sont concernées, ce qui représente un parc significatif d'entreprises préférant le contrôle de leurs données. Selon les statistiques de déploiement, des centaines de milliers d'instances GitLab auto-hébergées existent dans le monde, dont une proportion exposée directement sur Internet.
La nature de la correction apportée dans les versions 19.4.2, 19.3.4 et 19.2.8 consiste à remplacer le type entier utilisé pour le calcul de la taille du buffer de compilation regex par un type de plus grande capacité (entier 64 bits), et à ajouter une vérification explicite de la valeur calculée avant l'allocation mémoire. Des limites de taille maximale sur les expressions régulières acceptées dans les fichiers CI/CD ont également été introduites comme défense en profondeur.
GitLab n'avait pas connaissance d'exploitation active de CVE-2026-97229 au moment de la publication du patch, ce qui constitue une fenêtre d'opportunité critique pour les administrateurs d'instances auto-hébergées. Historiquement, les vulnérabilités critiques GitLab avec un score CVSS proche de 10 font l'objet d'une exploitation active dans les 24 à 72 heures suivant la publication d'un correctif, une fois que les acteurs malveillants ont pu analyser les diffs et développer des exploits opérationnels. La mise à jour doit donc être appliquée en urgence, sans attendre les fenêtres de maintenance planifiées habituelles.
Impact et exposition
CVE-2026-97229 représente un risque critique pour toutes les organisations hébergeant leur infrastructure GitLab on-premise. La criticité est amplifiée par le rôle central que joue GitLab dans les architectures DevSecOps modernes : un serveur GitLab compromis n'est pas seulement un dépôt de code, c'est une clé maîtresse donnant accès aux secrets de déploiement, aux environnements de production, aux pipelines d'intégration continue, et à la totalité du code source de l'organisation.
Les instances GitLab configurées avec l'inscription publique activée présentent le niveau de risque le plus élevé, car elles permettent à un attaquant anonyme de déclencher le parsing du fichier CI/CD vulnérable sans obstacle. Les instances avec inscription restreinte nécessitent qu'un attaquant dispose d'au moins un compte de niveau Guest, ce qui reste un prérequis très facilement contournable. Seules les instances avec inscription totalement désactivée limitent marginalement le vecteur d'attaque initial.
Dans le cadre de chaînes de supply chain software, un attaquant compromettant GitLab peut insérer du code malveillant dans les dépôts, modifier les pipelines CI/CD pour exfiltrer des artifacts, ou signer des builds avec les clés légitimes de l'organisation, rendant la compromission difficile à détecter et pouvant affecter l'ensemble des clients ou utilisateurs du logiciel produit.
Recommandations immédiates
- Mettre à jour immédiatement vers GitLab 19.4.2, 19.3.4 ou 19.2.8 selon votre branche installée — GitLab Security Release du 12 octobre 2026
- Si la mise à jour ne peut être appliquée immédiatement : restreindre temporairement l'accès à l'interface GitLab depuis Internet (pare-feu, VPN obligatoire)
- Désactiver l'inscription publique (Settings → Sign-up restrictions → Sign-up enabled = false) pour réduire la capacité des attaquants anonymes à déclencher le parsing CI/CD
- Auditer les logs GitLab (gitlab-rails/production.log) pour détecter des créations de merge requests avec des fichiers .gitlab-ci.yml contenant des expressions régulières inhabituellement longues ou complexes
- Après mise à jour, effectuer une rotation de l'ensemble des secrets CI/CD, tokens d'accès et clés SSH stockés dans GitLab par mesure de précaution
- Vérifier l'intégrité des pipelines CI/CD et des artifacts produits récemment pour détecter toute modification non autorisée
⚠️ Urgence maximale — CVSS 10.0, exploitation imminente attendue
CVE-2026-97229 atteint le score CVSS maximal de 10.0. Bien qu'aucune exploitation active n'ait été confirmée au moment de la publication du patch, les vulnérabilités critiques GitLab font historiquement l'objet d'exploitation dans les 24 à 72 heures. Mettez à jour maintenant, sans attendre la prochaine fenêtre de maintenance planifiée.
Comment savoir si je suis vulnérable ?
Vérifiez votre version GitLab avec la commande sudo gitlab-rake gitlab:env:info | grep "GitLab version" ou depuis l'interface Admin Area → Dashboard. Si votre version est comprise entre 18.1.0 et 19.4.1 inclus, vous êtes vulnérable. Pour les déploiements Docker : docker exec -it gitlab gitlab-rails runner "puts Gitlab::VERSION". Vérifiez également si l'inscription publique est activée dans Admin Area → Settings → General → Sign-up restrictions.
Votre infrastructure GitLab est-elle sécurisée ?
Ayi NEDJIMI réalise des audits de sécurité de vos instances GitLab et de vos chaînes CI/CD pour identifier les risques de compromission.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-104711 : Apache Struts OGNL injection RCE CVSS 9.8
CVE-2026-104711 est une injection OGNL critique (CVSS 9.8) dans le legacy RESTful action mapper d'Apache Struts permettant à un attaquant non authentifié d'exécuter du code arbitraire via une URI forgée.
CVE-2026-104286 : FortiMail Zero-Day CVSS 9.8 exploité avant patch
Fortinet confirme l'exploitation active de CVE-2026-104286, un zero-day CVSS 9.8 dans FortiMail permettant d'écrire des fichiers arbitraires sans authentification avant la disponibilité du correctif.
CVE-2021-3199 : ONLYOFFICE RCE CVSS 9.8 exploité par Flax Typhoon — CISA KEV
CVE-2021-3199 (CVSS 9.8) est une vulnérabilité de path traversal menant à RCE dans ONLYOFFICE Document Server, ajoutée au CISA KEV le 8 octobre 2026 suite à son exploitation active par le groupe APT chinois Flax Typhoon.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire