En bref

  • CVE-2026-97229 : integer overflow dans le compilateur Regex CI/CD GitLab, CVSS 10.0 — RCE sans authentification possible
  • Affecte GitLab CE et EE toutes versions antérieures à 19.2.8, 19.3.5, 19.4.2
  • Action urgente : mettre à jour immédiatement — ajouté au KEV CISA le 29 octobre 2026, exploitation active confirmée

Les faits

Le 28 octobre 2026, GitLab a publié en urgence des correctifs pour CVE-2026-97229, une vulnérabilité d'integer overflow affectant le moteur de compilation des expressions régulières utilisé dans les configurations de pipelines CI/CD. La faille reçoit le score CVSS 3.1 maximal de 10.0, avec le vecteur AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H, signifiant une exploitation réseau sans condition préalable, sans interaction utilisateur, avec impact total sur la confidentialité, l'intégrité et la disponibilité du système hôte.

La cause racine réside dans un manque de validation de la taille des expressions régulières soumises dans les fichiers .gitlab-ci.yml. Lorsqu'un attaquant soumet une expression régulière spécialement forgée, le compilateur interne — écrit en C avec des liaisons Ruby — subit un dépassement d'entier lors du calcul de la taille du buffer alloué. Ce débordement conduit à une écriture hors limites (out-of-bounds write) en mémoire heap, permettant l'exécution de code arbitraire dans le contexte du processus GitLab. L'integer overflow intervient dans la fonction de pré-allocation : quand la taille dépasse la valeur maximale d'un entier signé 32 bits (2 147 483 647), elle bascule en négatif, malloc() reçoit une taille aberrante, et les écritures subséquentes corrompent les structures heap adjacentes avec des primitives suffisantes pour déclencher l'exécution de code.

La condition d'exploitation est déterminante : sur les instances GitLab où l'inscription libre est activée — configuration par défaut sur de nombreuses installations auto-hébergées — l'exploitation est totalement non authentifiée. N'importe qui peut créer un compte, pousser un .gitlab-ci.yml malveillant et déclencher un pipeline pour exécuter du code arbitraire sur le serveur. Sur les instances restreintes, il suffit d'un simple compte utilisateur sans droits élevés. Selon les données de Shodan au 30 octobre 2026, plus de 60 000 instances GitLab sont directement accessibles depuis Internet.

La découverte a été attribuée à un chercheur du programme de bug bounty HackerOne de GitLab. Le délai entre signalement et publication du correctif a été de 45 jours. GitLab a publié simultanément les versions 19.2.8, 19.3.5 et 19.4.2 le 28 octobre 2026. Dès le lendemain, le 29 octobre 2026, la CISA a ajouté CVE-2026-97229 à son catalogue KEV (Known Exploited Vulnerabilities), confirmant l'exploitation active dans la nature. GitLab.com (la plateforme SaaS officielle) a été patché en urgence sans interruption de service — seules les instances auto-hébergées restent exposées jusqu'à application manuelle du correctif.

Les analyses de threat intelligence publiées par Rapid7 et SOCPrime montrent des campagnes d'exploitation automatisées démarrées dans les heures suivant la publication du patch — rétro-ingénierie quasi-immédiate du correctif, pratique désormais systématique. Les payloads observés incluent l'installation de cryptomineurs, des web shells persistants (notamment des variantes de WSO Shell), et dans au moins un cas documenté par SecurityWeek, le déploiement d'un agent de type RAT suggérant une opération d'espionnage industriel ciblant des prestataires DevOps. Les organisations ciblées en priorité sont les entreprises technologiques, les intégrateurs de solutions DevSecOps, et les administrations publiques utilisant GitLab auto-hébergé.

Il convient de distinguer CVE-2026-97229 de CVE-2026-110264, une précédente vulnérabilité GitLab RCE CVSS 10.0 publiée plus tôt en 2026 concernant une injection de commande dans le module d'import. Ces deux vulnérabilités sont indépendantes. Les administrateurs ayant patché CVE-2026-110264 restent vulnérables à CVE-2026-97229 s'ils n'ont pas mis à jour vers les versions les plus récentes.

La sévérité est amplifiée par le rôle central de GitLab dans les chaînes CI/CD. Un serveur compromis donne accès aux dépôts de code source, aux secrets CI/CD (tokens API, clés SSH, credentials cloud AWS/Azure/GCP), aux runners CI/CD et indirectement à l'ensemble des environnements de déploiement. Il s'agit d'un point de compromission à très fort multiplicateur dans les chaînes d'approvisionnement logicielle — un vecteur d'attaque APT de premier plan identifié par le CERT-FR dans ses bulletins d'octobre 2026.

Une preuve de concept (PoC) publique a été publiée sur GitHub dès le 30 octobre 2026, confirmant l'exploitabilité fiable sur toutes les versions non patchées. La présence d'un PoC public réduit drastiquement le niveau de compétence requis pour exploiter la faille et élargit significativement le cercle des attaquants potentiels au-delà des groupes APT sophistiqués. Les organisations sous NIS2 sont tenues d'appliquer le correctif dans les délais réglementaires impartis et de notifier l'ANSSI en cas de compromission avérée.

Impact et exposition

CVE-2026-97229 affecte toutes les instances GitLab CE et EE auto-hébergées antérieures aux versions 19.2.8, 19.3.5 et 19.4.2. L'exposition varie selon la configuration : instances avec inscription ouverte (exploitation totalement non authentifiée, accessible à n'importe qui sur Internet), instances restreintes avec comptes locaux (exploitation requérant un compte utilisateur standard), et instances SAML/SSO sans désactivation des comptes locaux (protection insuffisante). Aucune configuration ne rend la faille inexploitable sans application du patch.

L'exploitation active confirmée par la CISA s'accompagne d'une surface d'attaque secondaire préoccupante : les secrets CI/CD stockés dans GitLab — credentials AWS/Azure/GCP, tokens d'API, clés privées SSH — constituent le véritable butin. Dans les environnements DevOps modernes, une compromission GitLab se propage rapidement à l'infrastructure cloud complète. Les organisations utilisant GitLab pour du code critique (défense, santé, finance, énergie) sont particulièrement exposées au risque de compromission de la chaîne d'approvisionnement logicielle.

Du point de vue réglementaire, les entités sous NIS2 opérant des instances GitLab auto-hébergées doivent traiter cette vulnérabilité comme une urgence de niveau critique. La CISA impose aux agences fédérales américaines de patcher avant le 19 novembre 2026 (délai KEV standard de 21 jours). L'ANSSI a émis des recommandations similaires pour les entités françaises régulées. L'absence d'application du patch dans les délais peut engager la responsabilité des RSSI en cas d'incident.

Recommandations immédiates

  • Mettre à jour vers GitLab 19.2.8, 19.3.5 ou 19.4.2 selon votre branche — advisory : GitLab Security Advisory 2026-10-28
  • Si mise à jour impossible immédiatement : désactiver les pipelines CI/CD et bloquer les endpoints /api/v4/projects/*/pipelines au niveau du reverse proxy
  • Désactiver l'inscription ouverte si non nécessaire (Admin Area → Settings → General → Sign-up restrictions)
  • Effectuer une rotation complète de tous les secrets CI/CD stockés dans GitLab (variables d'environnement, tokens, clés SSH)
  • Auditer les logs des pipelines du 20 au 28 octobre 2026 pour identifier des fichiers .gitlab-ci.yml anormaux ou des expressions régulières inhabituellement longues
  • Rechercher des indicateurs de compromission : nouveaux utilisateurs créés récemment, runners CI/CD inattendus, processus fils anormaux de GitLab Puma

⚠️ Urgence maximale

CVE-2026-97229 est activement exploitée depuis le 28 octobre 2026. Score CVSS 10.0. KEV CISA confirmé. PoC public disponible. Les instances GitLab auto-hébergées avec inscription ouverte sont exploitables sans authentification depuis Internet. Patcher maintenant — chaque heure de délai augmente le risque de compromission irréversible de votre chaîne CI/CD.

Comment savoir si je suis vulnérable ?

Vérifiez votre version via sudo gitlab-rake gitlab:env:info ou dans Admin Area → Dashboard → Components. Toute version antérieure à 19.2.8 (branche 19.2.x), 19.3.5 (branche 19.3.x) ou 19.4.2 (branche 19.4.x) est vulnérable. Si vous êtes sur une branche antérieure (19.1.x ou plus ancienne), vous êtes vulnérable et une mise à jour vers une branche supportée est indispensable. Vérifiez également si l'inscription ouverte est activée via Admin Area → Settings → General → Sign-up restrictions.

Votre infrastructure GitLab est-elle exposée ?

Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités CI/CD et protéger votre chaîne de développement logicielle.

Demander un audit