En bref

  • CVE-2026-110264 : RCE non authentifié CVSS 10.0 dans GitLab CE et EE via un integer overflow dans le compilateur regex Onigmo
  • Toutes les versions depuis GitLab 7.0 (2014) jusqu'aux correctifs du 21 octobre 2026 sont affectées — douze années de releases vulnérables
  • Patch d'urgence publié le 21 octobre 2026 — mise à jour immédiate vers 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ou 19.5.1

Les faits

Le 21 octobre 2026, GitLab a publié un patch d'urgence pour CVE-2026-110264, une vulnérabilité de sévérité maximale — CVSS 10.0 — permettant à n'importe quel utilisateur non authentifié d'exécuter du code arbitraire sur un serveur GitLab autogéré. La faille couvre douze années de développement : toutes les versions de GitLab Community Edition (CE) et Enterprise Edition (EE) depuis la 7.0 sont concernées. CERT-EU a immédiatement émis l'advisory 2026-019 qualifiant la situation de critique.

La vulnérabilité réside dans le moteur Onigmo, une bibliothèque C embarquée dans Ruby et utilisée par GitLab pour analyser des expressions régulières dans les requêtes de recherche, la validation des webhooks, les filtres d'API et le rendu des formats de balisage léger. Le problème est un integer overflow : Onigmo stocke les identifiants de répétition dans un opérande bytecode signé sur 16 bits, mais les compte en interne avec un type int 32 bits. Passé la valeur 32 767, l'identifiant bascule en négatif. Lors de l'exécution, cet identifiant négatif sert d'index pour accéder à la pile de répétition, déclenchant une écriture hors limites (out-of-bounds write) en mémoire.

Le vecteur d'attaque le plus documenté implique un fichier Org-mode (.org) spécialement conçu. GitLab rend automatiquement les fichiers Org-mode dans les dépôts publics. Un attaquant non authentifié peut créer un compte gratuit, déposer un fichier .org contenant une regex malformée, et déclencher l'overflow au moment du rendu côté serveur. Le résultat est une exécution de code dans le contexte du processus GitLab — potentiellement root sur certaines configurations. Le vecteur réseau, la complexité faible, l'absence d'interaction utilisateur et l'absence de privilèges requis justifient le score CVSS maximal de 10.0.

La correspondance de patterns regex intervient dans de nombreux autres contextes dans GitLab : les requêtes de recherche avancée, la validation des patterns de webhooks, les filtres d'API REST et GraphQL. Le fichier Org-mode n'est qu'un vecteur parmi d'autres — une instance avec les dépôts publics désactivés peut rester exposée via d'autres points d'entrée si les requêtes réseau directes sont possibles.

L'étendue de l'exposition est considérable. Plusieurs centaines de milliers d'instances GitLab autogérées sont accessibles sur l'internet public, dont une proportion significative dans des environnements d'entreprise gérant du code source propriétaire, des pipelines CI/CD, des secrets en variables d'environnement et des clés d'accès aux environnements de production. Une compromission de GitLab dans ce contexte offre une position initiale exceptionnelle pour un mouvement latéral vers les environnements de déploiement et les registres de conteneurs.

Les instances GitLab.com ont reçu le patch en déploiement silencieux le 21 octobre au soir. En revanche, tous les déploiements on-premise — serveurs bare-metal, conteneurs Docker, Kubernetes — restent vulnérables jusqu'à la mise à jour manuelle par les équipes opérationnelles.

GitLab a déclaré n'avoir connaissance d'aucune exploitation active au moment de la publication du correctif. Toutefois, la nature de la faille — non authentifiée, CVSS 10.0, douze ans de versions affectées — en fait une cible de premier choix pour les acteurs ransomware et les APT cherchant un accès initial. Sur la base des tendances observées pour des vulnérabilités similaires, les premières tentatives d'exploitation automatisées apparaissent généralement dans les 24 à 72 heures suivant la divulgation publique.

Ce n'est pas la première fois qu'un integer overflow dans une bibliothèque C sous-jacente se retrouve au cœur d'une vulnérabilité critique dans un outil DevOps majeur. En 2023, une faille similaire dans libwebp avait affecté Chrome, Electron, Signal, Teams et des dizaines d'autres applications embarquant la bibliothèque. La leçon reste identique : les dépendances natives C/C++ à faible visibilité représentent une dette technique de sécurité structurelle dans les projets Ruby, Python et Node.js qui les embarquent, rarement auditées avec la même rigueur que le code applicatif principal.

Les versions corrigées sont : 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 et 19.5.1. Pour les équipes ne pouvant pas mettre à jour immédiatement, une mitigation partielle consiste à désactiver le rendu Org-mode dans Administration > Settings > General > Visibility and access controls et à restreindre la création de dépôts publics aux utilisateurs authentifiés uniquement.

Impact et exposition

Toute organisation opérant une instance GitLab CE ou EE autogérée en version antérieure à 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ou 19.5.1 est exposée. L'attaque ne requiert aucune authentification et peut être déclenchée via l'internet public si le port 80/443 est accessible. Les pipelines CI/CD, les secrets stockés en variables d'environnement, les clés SSH et les tokens d'API sont en danger en cas d'exploitation réussie.

Recommandations

  • Mise à jour immédiate vers l'une des versions corrigées : 18.11.13, 19.0.10, 19.1.9, 19.2.9, 19.3.6, 19.4.3 ou 19.5.1
  • En attente du patch : désactiver le rendu Org-mode et restreindre la création de dépôts publics aux utilisateurs authentifiés
  • Auditer les logs des 10 derniers jours — chercher des requêtes POST avec des fichiers .org inhabituels et des erreurs 500 anormales dans les logs GitLab
  • Vérifier l'intégrité de toute instance GitLab exposée sur internet avant de conclure à l'absence de compromission
  • Révoquer et renouveler les tokens CI/CD et credentials de déploiement si l'instance était accessible sans patch après le 21 octobre

Alerte critique

CVE-2026-110264 est l'une des rares vulnérabilités à atteindre le score CVSS maximal de 10.0. Toute instance GitLab autogérée accessible sur internet doit être considérée comme potentiellement compromise si elle n'est pas encore à jour. Appliquez le correctif dans les prochaines heures, pas dans les prochains jours.

GitLab.com est-il affecté ? Dois-je m'inquiéter pour mon projet hébergé chez GitLab ?

Les instances GitLab.com ont reçu le patch en déploiement silencieux le 21 octobre 2026. Les projets hébergés sur GitLab.com ne sont plus exposés. Si vous disposez d'une instance GitLab autogérée (on-premise, cloud privé, conteneur Docker), vous devez impérativement mettre à jour vers une version corrigée. Vérifiez votre version dans Administration > Help ou via gitlab-rake gitlab:env:info.

Votre infrastructure est-elle exposée ?

Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.

Demander un audit