Contexte et portée de la vulnérabilité
Le 14 octobre 2026, GitLab a publié un correctif pour CVE-2026-97229, classée CVSS 10.0, ce qui indique une gravité maximale. La faille réside dans la validation des expressions régulières utilisées pour les configurations CI/CD. Dans les versions communautaire (CE) et entreprise (EE) antérieures à 19.2.8, 19.3.5 et 19.4.2, un utilisateur non authentifié pouvait soumettre une configuration spécialement conçue afin de déclencher un dépassement d’entier (integer overflow) lors du parsing de la regex.
Mécanisme d’exploitation
Le parser de regex alloue un compteur 32 bits pour mesurer la longueur maximale d’une chaîne d’entrée. En injectant une séquence de caractères dont la longueur dépasse 2³¹‑1, l’opération d’incrémentation déborde, réinitialisant le compteur à une valeur négative. Cette corruption de la mémoire de contrôle permet de réécrire des pointeurs de fonction internes du serveur GitLab. Le code malveillant ainsi injecté s’exécute avec les privilèges du processus GitLab, généralement root ou l’utilisateur système dédié, donnant un accès complet au serveur.
Correctif et versions impactées
GitLab a intégré la validation de dépassement d’entier dans le module de parsing, en imposant une limite stricte de 2 GB et en vérifiant la cohérence du compteur avant chaque incrément. Les correctifs sont disponibles dans les versions CE/EE 19.2.8, 19.3.5 et 19.4.2. En même temps, la mise à jour corrige plusieurs vulnérabilités de type XSS, des problèmes d’autorisation et une faille de poisonning du cache de réponse, toutes notées haute gravité. Les administrateurs sont invités à appliquer immédiatement les patches via les dépôts officiels ou le gestionnaire de paquets.
Impact pratique et limites du correctif
Avant le correctif, un attaquant pouvait exploiter la faille sans aucune authentification, simplement en soumettant une configuration CI/CD via l’API publique ou l’interface web. La portée dépendait de la présence d’un endpoint d’import de configuration exposé. Après mise à jour, le dépassement d’entier est bloqué, mais les vecteurs d’injection restent pertinents si d’autres parsers de configuration ne sont pas renforcés. Les organisations qui maintiennent des versions antérieures non supportées restent exposées et doivent envisager une migration vers une version supportée ou l’isolation du service CI/CD derrière un pare-feu d’application. Enfin, la divulgation publique de la vulnérabilité a permis aux équipes de sécurité de vérifier leurs environnements, mais aucune preuve publique d’exploitation en conditions réelles n’a été rapportée à ce jour.