Offre Durée limitée : -10% sur tout le site* avec le code WELCOME10

CVE-2026-97229 : faille GitLab exploitée (CVSS 10), comment mettre à jour votre instance

Publié le 29 octobre 2026 11 min de lecture 10 sections

Le 12 octobre 2026, GitLab a publié les versions correctives 19.2.8, 19.3.5 et 19.4.2 de GitLab Community Edition (CE) et Enterprise Edition (EE) pour corriger 25 vulnérabilités de sécurité, dont CVE-2026-97229, un integer overflow critique dans le compilateur d'expressions régulières du moteur CI/CD. Cette faille de sécurité informatique est notée CVSS 10.0 (score maximal) : un attaquant non authentifié peut exécuter du code arbitraire à distance sur le serveur GitLab en injectant une expression régulière malveillante dans un fichier de configuration de pipeline .gitlab-ci.yml. Le 29 octobre 2026, la CISA a ajouté CVE-2026-97229 à son catalogue KEV (Known Exploited Vulnerabilities), confirmant une exploitation active en cours. Si vous hébergez une instance GitLab auto-gérée sur un VPS Linux ou un serveur dédié, la mise à jour vers une version corrigée est la seule remédiation disponible : il n'existe aucun contournement.

Sources : GitLab patch release 19.4.2, CISA KEV Catalog, Rapid7 (analyse technique).

Comprendre la faille CVE-2026-97229

CVE-2026-97229 est classée CWE-190 (Integer Overflow or Wraparound). Le défaut se situe dans le compilateur d'expressions régulières Onigmo, le moteur regex natif intégré à Ruby, utilisé par GitLab pour traiter les scripts de pipelines CI/CD contenus dans les fichiers de configuration .gitlab-ci.yml. Lorsqu'un fichier de pipeline contient une expression régulière dans une directive rules:exists ou rules:changes, GitLab compile cette regex pour l'évaluer contre les chemins de fichiers du dépôt. C'est à cette étape de compilation que se produit le dépassement d'entier : le calcul de la taille du programme regex compilé dépasse la valeur maximale d'un entier signé 32 bits, produisant un résultat négatif qui passe la vérification interne de taille et provoque une corruption de la mémoire du processus serveur.

Le vecteur CVSS 3.1 est AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H : l'attaque passe par le réseau, sans aucune authentification préalable et sans interaction utilisateur, avec un impact total sur la confidentialité, l'intégrité et la disponibilité du serveur. Sur une instance GitLab auto-hébergée qui autorise la création de projets publics ou l'accès aux dépôts sans authentification, un attaquant peut déclencher la vulnérabilité via l'API de lint CI/CD (/api/v4/projects/{id}/ci/lint) en envoyant une simple requête GET non authentifiée qui force la compilation de la regex malveillante.

Le mécanisme d'exploitation repose sur un contournement du scanner de quantificateurs de GitLab. Le scanner ne reconnaît que les chiffres contigus dans les quantificateurs regex. En insérant un commentaire inline ((?#)) au milieu d'un nombre, l'attaquant masque la véritable valeur de répétition : GitLab voit un petit quantificateur, mais Onigmo interprète le nombre complet. Combinée à des classes de caractères POSIX ([[:word:]]) qui se dilatent lors de la recompilation UTF-8, cette technique produit un programme regex dont la taille dépasse INT_MAX d'environ 30 000 octets. Le code malveillant est alors intégré dans les données de bitmap des classes de caractères, permettant l'exécution de commandes système sous l'identité de l'utilisateur git du serveur GitLab.

Exploitation active confirmée par la CISA

Le 29 octobre 2026, la CISA (Cybersecurity and Infrastructure Security Agency) a ajouté CVE-2026-97229 à son catalogue KEV, signalant une exploitation active confirmée dans la nature. L'agence fédérale américaine impose aux agences gouvernementales une date limite de remédiation fixée au 1er novembre 2026, avec obligation de triage forensique (BOD 26-04). Pour tout administrateur d'instance GitLab auto-hébergée, ce signal d'alerte est sans équivoque : deux semaines et demie après la publication du correctif de sécurité, les instances non mises à jour sont désormais des cibles actives d'attaques.

Des tentatives d'exploitation ont déjà été documentées publiquement. Entre le 20 et le 26 octobre 2026, un attaquant a ciblé l'instance GitLab d'Alpine Linux en soumettant des configurations CI/CD malveillantes contenant des expressions régulières spécialement construites. L'attaque a provoqué huit crashs de workers GitLab (processus Puma), dont quatre ont montré une progression partielle avant d'échouer. L'équipe d'Alpine Linux a estimé que l'attaque "est passée près de fonctionner" et a reconstruit son instance depuis zéro le 27 octobre 2026, en réinitialisant tous les mots de passe et clés secrètes par mesure de précaution.

Un code d'exploitation fonctionnel (PoC) publié par Rapid7 le 16 octobre 2026 est disponible publiquement, ce qui abaisse considérablement la barrière d'entrée pour les attaquants. Ce PoC exécute une commande shell arbitraire en tant qu'utilisateur git sur le serveur cible via une simple requête HTTP non authentifiée. L'exploitation nécessite environ 2 Go de RAM sur le worker Puma et cible les serveurs Linux sur processeur amd64.

Versions de GitLab touchées et correctifs disponibles

La vulnérabilité CVE-2026-97229 touche toutes les versions de GitLab CE et EE des branches 19.2, 19.3 et 19.4 antérieures aux correctifs de sécurité. Les versions corrigées ont été publiées le 12 octobre 2026 dans le cadre d'une release corrective planifiée :

Branche GitLabVersions vulnérablesVersion corrigée (patch)
19.2.x19.2.0 à 19.2.719.2.8
19.3.x19.3.0 à 19.3.419.3.5
19.4.x19.4.0 à 19.4.119.4.2

La version 19.3.4, initialement publiée comme correctif, contenait un bug affectant les pages de merge requests lorsque l'intégration Ona était activée. GitLab l'a remplacée par la version 19.3.5. Si vous avez installé la 19.3.4, votre instance reste vulnérable à CVE-2026-97229 : passez à la 19.3.5.

Au total, cette release corrective de sécurité adresse 25 vulnérabilités, dont quatre autres classées comme élevées (High) : une faille XSS dans la coloration syntaxique (CVE-2026-92883, CVSS 8.7), un contournement d'autorisation dans les pipelines en aval (CVE-2026-16301, CVSS 8.5), un problème d'accès aux fichiers via regex (CVE-2026-14814, CVSS 8.2) et une faille d'autorisation dans les pipelines planifiés (CVE-2026-81839, CVSS 7.7, EE uniquement). La release inclut également la correction d'une vulnérabilité d'injection de prompt LLM dans Duo Agent (CVE-2026-96893, CVSS 7.3, EE).

Chronologie des événements

DateÉvénement
12 octobre 2026GitLab publie les versions correctives 19.2.8, 19.3.5, 19.4.2 (correctif de sécurité)
13 octobre 2026Publication de l'avis de sécurité officiel et des détails de la vulnérabilité
16 octobre 2026Rapid7 publie un code d'exploitation fonctionnel (PoC) et une analyse technique détaillée
20-26 octobre 2026Tentatives d'exploitation documentées contre l'instance GitLab d'Alpine Linux
27 octobre 2026Alpine Linux reconstruit son instance GitLab depuis zéro par précaution
29 octobre 2026La CISA ajoute CVE-2026-97229 au catalogue KEV (exploitation active confirmée)

Vérifier la version de votre instance GitLab

Ouvrez un shell SSH sur votre serveur VPS Linux ou serveur dédié hébergeant votre instance GitLab et vérifiez la version installée en ligne de commande. Pour une installation Omnibus (le mode d'installation le plus courant pour les instances auto-hébergées) :

sudo gitlab-rake gitlab:env:info

Pour afficher uniquement le numéro de version de GitLab sans les informations système :

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

Si le numéro de version est inférieur à 19.2.8, 19.3.5 ou 19.4.2 selon la branche installée sur votre serveur, votre instance GitLab est vulnérable à l'exécution de code à distance et doit être mise à jour sans délai.

Pour les installations Docker, vérifiez le tag de l'image GitLab en cours d'exécution :

docker inspect gitlab/gitlab-ce:latest | grep -i version

Mettre à jour GitLab pour corriger la vulnérabilité

Avant toute mise à jour de GitLab, sauvegardez vos données et créez un snapshot de votre serveur si votre hébergeur le propose. La mise à jour corrige la vulnérabilité CVE-2026-97229 et les 24 autres failles de sécurité incluses dans cette release. Pour une installation Omnibus, la mise à jour s'effectue via le gestionnaire de paquets du système d'exploitation de votre serveur.

Debian / Ubuntu

sudo apt update && sudo apt install gitlab-ce

Pour GitLab Enterprise Edition, remplacez gitlab-ce par gitlab-ee :

sudo apt update && sudo apt install gitlab-ee

CentOS / RHEL / AlmaLinux

sudo yum install gitlab-ce

Après l'installation du paquet, GitLab se reconfigure automatiquement. La release inclut des migrations de base de données qui peuvent allonger la durée de mise à jour. Sur une instance mono-serveur, prévoyez une interruption de service temporaire. Après l'installation du package, vérifiez que tous les services fonctionnent avec sudo gitlab-ctl status. Si un composant ne redémarre pas correctement, relancez-le avec sudo gitlab-ctl restart. Vérifiez ensuite la version installée :

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

Pour les installations Docker, mettez à jour le tag de l'image vers la version corrigée et recréez le conteneur. Pour la gestion de Docker sur votre serveur, consultez notre guide installer Docker sur un VPS.

Aucun contournement (workaround) ne corrige cette vulnérabilité. Désactiver l'accès anonyme aux projets publics, interdire la création de projets par des utilisateurs non authentifiés ou bloquer la route /api/v4/*/ci/lint au niveau du reverse proxy réduit la surface d'attaque, mais ne supprime pas le risque d'exécution de code à distance. La mise à jour vers une version corrigée de GitLab est la seule remédiation efficace. Le correctif technique remplace la multiplication vulnérable dans le calcul de taille par une division qui ne peut pas provoquer de dépassement d'entier.

GitLab.com et GitLab Dedicated : déjà patchés

Si vous utilisez GitLab.com (l'offre SaaS hébergée par GitLab) ou GitLab Dedicated (l'offre managée en instance isolée), aucune action n'est nécessaire de votre part. GitLab a appliqué les correctifs de sécurité sur son infrastructure et sur toutes les instances Dedicated avant la publication de l'avis de sécurité. Seules les instances auto-hébergées (self-managed) de GitLab CE et EE installées sur votre propre serveur nécessitent une intervention manuelle pour appliquer le patch.

Gestion des correctifs : configurer un processus de mise à jour sur votre serveur distant

La gestion des correctifs est une composante essentielle de la sécurité informatique des instances GitLab auto-hébergées. CVE-2026-97229 rappelle qu'un bug critique peut être exploité activement quelques jours après sa divulgation. Configurer un processus de veille et de mise à jour rigoureux sur votre serveur réduit le temps d'exposition aux vulnérabilités connues.

  • Surveiller les annonces de sécurité : abonnez-vous au flux RSS des release notes GitLab. GitLab publie ses correctifs le deuxième et le quatrième mercredi de chaque mois. Un paramétrage proactif de la veille vous permet de réagir avant que les bugs soient exploités activement.
  • Automatiser avec un script shell : créez un script qui vérifie la version GitLab installée, sauvegarde la base de données PostgreSQL avec gitlab-backup create, installe le package correctif via le gestionnaire de paquets et vérifie que les services redémarrent correctement. Planifiez ce script via une tâche cron pour automatiser la gestion des correctifs ou au minimum recevoir une notification lorsqu'un nouveau package est disponible.
  • Tester avant la production : si vos ressources en RAM et en processeur le permettent, maintenez une instance GitLab de staging sur un second VPS. Appliquez-y le correctif en premier pour vérifier la compatibilité avec vos scripts CI/CD et vos intégrations avant de mettre à jour le serveur distant de production.
  • Restreindre l'accès réseau : limitez l'accès à votre instance GitLab par adresse IP source via le pare-feu. Configurez les enregistrements DNS pour que seuls les noms de domaine autorisés pointent vers votre instance, et placez un reverse proxy Nginx devant GitLab pour filtrer les requêtes suspectes avant qu'elles n'atteignent le serveur web applicatif.

Détecter une tentative d'exploitation sur votre serveur

Après avoir appliqué le correctif, vérifiez si votre instance GitLab a fait l'objet de tentatives d'exploitation avant la mise à jour. GitLab a publié six signatures de détection de menaces (threat detections) pour aider les administrateurs d'instances auto-gérées à identifier les attaques liées à CVE-2026-97229. Voici les indicateurs de compromission à rechercher dans les journaux de votre serveur :

  • Crashs de workers Puma : des redémarrages de workers GitLab (processus Puma) coïncidant avec des requêtes vers l'API CI/CD, avec regexp_matcher.rb dans les traces de pile. Vérifiez les journaux dans /var/log/gitlab/puma/.
  • Requêtes suspectes vers l'API de lint : dans les journaux Workhorse (/var/log/gitlab/gitlab-workhorse/), recherchez des requêtes GET de longue durée (plusieurs secondes) vers /api/v4/projects/*/ci/lint suivies de réponses HTTP 502 ("badgateway: failed to receive response: EOF").
  • Artefacts dans les dépôts : des commits contenant des quantificateurs regex avec commentaires inline ((?#)), des classes de caractères POSIX [[:word:]] répétées, et des chemins de fichiers avec des caractères UTF-8 sur quatre octets.

Si vous détectez des indicateurs de compromission, considérez votre instance comme potentiellement compromise. Changez immédiatement tous les mots de passe, révoquez les tokens d'accès personnel et les clés de déploiement, et créez une sauvegarde des journaux avant toute réinitialisation. L'exemple d'Alpine Linux montre qu'une reconstruction complète de l'instance peut être nécessaire en cas de compromission confirmée.

Sécuriser le serveur qui héberge GitLab

Appliquer le correctif de sécurité GitLab neutralise la vulnérabilité CVE-2026-97229, mais la sécurité globale de votre instance dépend aussi de la configuration du serveur Linux sous-jacent. Profitez de cette mise à jour pour vérifier les fondamentaux de sécurité de votre infrastructure :

  • Accès SSH : désactivez l'authentification par mot de passe et utilisez exclusivement des clés SSH pour l'administration du serveur. Notre guide sécuriser SSH sur VPS Linux détaille la procédure complète de durcissement.
  • Mises à jour automatiques du système : configurez les mises à jour de sécurité automatiques du système d'exploitation pour ne pas dépendre d'une intervention manuelle à chaque nouvelle CVE publiée. Consultez notre guide automatiser les mises à jour de sécurité sur Ubuntu.
  • Sauvegardes GitLab : vérifiez que vos sauvegardes GitLab (gitlab-backup create), incluant la base PostgreSQL et les fichiers de config /etc/gitlab/, fonctionnent correctement. Testez la restauration et assurez-vous que la dernière sauvegarde est récente et intègre.
  • Pare-feu et accès réseau : limitez l'accès à votre instance GitLab aux adresses IP autorisées via le pare-feu de votre serveur. Configurez UFW ou nftables pour restreindre les ports exposés et bloquer les connexions non nécessaires. Vérifiez également la résolution DNS de votre serveur pour vous assurer qu'aucun enregistrement non autorisé ne pointe vers votre instance.
  • Journaux d'activité et supervision : après l'application du patch, consultez les journaux GitLab dans /var/log/gitlab/ pour détecter d'éventuelles tentatives d'exploitation antérieures à la mise à jour. Mettez en place une supervision des journaux pour être alerté en cas de comportement anormal sur votre serveur.

Pour suivre les autres vulnérabilités critiques affectant les serveurs Linux et les logiciels auto-hébergés, consultez notre actualité sur la faille TCP du noyau Linux CVE-2026-98432.

FAQ

Qu'est-ce que CVE-2026-97229 ?

CVE-2026-97229 est une vulnérabilité de type integer overflow (CWE-190) dans le compilateur d'expressions régulières du moteur CI/CD de GitLab CE et EE. Notée CVSS 10.0, elle permet à un attaquant non authentifié d'exécuter du code arbitraire sur le serveur via une regex malveillante dans un fichier .gitlab-ci.yml.

Quelles versions de GitLab sont touchées par CVE-2026-97229 ?

Les versions touchées sont GitLab CE et EE 19.2 avant 19.2.8, 19.3 avant 19.3.5 et 19.4 avant 19.4.2. Les correctifs ont été publiés le 12 octobre 2026.

Comment vérifier la version de GitLab installée sur mon serveur ?

Connectez-vous en SSH et lancez la commande sudo gitlab-rake gitlab:env:info ou cat /opt/gitlab/embedded/service/gitlab-rails/VERSION. Comparez le numéro affiché aux versions corrigées : 19.2.8, 19.3.5 ou 19.4.2 selon votre branche.

Comment mettre à jour GitLab pour corriger CVE-2026-97229 ?

Pour une installation Omnibus sur Debian ou Ubuntu : sudo apt update && sudo apt install gitlab-ce (ou gitlab-ee pour Enterprise Edition). Pour CentOS ou RHEL : sudo yum install gitlab-ce. Vérifiez ensuite la version avec cat /opt/gitlab/embedded/service/gitlab-rails/VERSION.

GitLab.com est-il touché par cette faille ?

Non. GitLab.com (l'offre SaaS) et GitLab Dedicated sont déjà patchés par GitLab. Seules les instances auto-hébergées (self-managed) de GitLab CE et EE nécessitent une mise à jour manuelle.

Existe-t-il un contournement pour CVE-2026-97229 ?

Non. Aucun contournement ne corrige la vulnérabilité. Restreindre l'accès anonyme aux projets publics réduit la surface d'attaque mais ne supprime pas le risque. La mise à jour vers une version corrigée (19.2.8, 19.3.5 ou 19.4.2) est la seule remédiation.

La faille CVE-2026-97229 est-elle exploitée activement ?

Oui. La CISA a ajouté CVE-2026-97229 à son catalogue KEV le 29 octobre 2026, confirmant une exploitation active. Des tentatives d'exploitation ont été documentées contre l'instance GitLab d'Alpine Linux entre le 20 et le 26 octobre 2026.

Comment détecter si mon instance GitLab a été compromise par CVE-2026-97229 ?

Recherchez dans les journaux Puma (/var/log/gitlab/puma/) des crashs de workers avec regexp_matcher.rb dans la trace de pile. Dans les journaux Workhorse, cherchez des requêtes GET longues vers /api/v4/projects/*/ci/lint suivies de réponses HTTP 502. Examinez aussi les dépôts pour des commits contenant des quantificateurs regex avec commentaires inline (?#) et des classes POSIX [[:word:]] répétées.

Combien de vulnérabilités sont corrigées dans cette release GitLab ?

La release corrective du 12 octobre 2026 corrige 25 vulnérabilités de sécurité au total : une critique (CVE-2026-97229, CVSS 10.0), quatre de sévérité élevée (High) et vingt de sévérité moyenne à basse. Toutes les failles sont corrigées dans les versions 19.2.8, 19.3.5 et 19.4.2.

Que faire si mon instance GitLab a été compromise ?

Sauvegardez immédiatement les journaux du serveur, puis changez tous les mots de passe, révoquez les tokens d'accès personnel et les clés de déploiement. Si la compromission est confirmée, reconstruisez l'instance GitLab depuis zéro comme l'a fait Alpine Linux, et restaurez les données depuis une sauvegarde saine antérieure à la compromission.

Comment mettre en place une gestion des correctifs pour GitLab auto-hébergé ?

Abonnez-vous au flux RSS des release notes GitLab pour être informé des nouveaux correctifs. Créez un script shell qui sauvegarde la base PostgreSQL, installe le package via le gestionnaire de paquets et vérifie que les services redémarrent. Planifiez ce script via cron ou un timer systemd. Testez chaque correctif sur une instance de staging avant de l'appliquer en production.