Ce qui se passe
Le 23 octobre 2026, Ruby a publié 4.0.9, 3.4.12 et 3.3.13. Elles corrigent trois bugs d'Onigmo, le moteur d'expressions régulières du langage. Ces bugs sont la cause commune des quatre failles critiques que GitLab a corrigées entre le 23 septembre et le 21 octobre, chaque fois en livrant un Ruby patché.
| Date | Faille | Compte requis | Note |
|---|---|---|---|
| 23 septembre | deux failles | oui | 9,9 |
| 12 octobre | CVE-2026-97229 |
non | 10,0 |
| 21 octobre | CVE-2026-110264 |
non | 10,0 |
CVE-2026-110264 touche toutes les versions de GitLab depuis la 7.0 ; c'est la
faille de la fiche du 22 octobre, corrigée par le correctif 19.5.1. Un chercheur
au pseudonyme joaxcar a signalé les quatre par le programme de primes de GitLab.
Au 23 octobre, aucune d'elles ne figurait au catalogue KEV de la CISA.
Le mécanisme
GitLab compile des motifs fournis par ses utilisateurs, par exemple ceux de la configuration CI/CD. Un motif forgé corrompt la mémoire pendant la compilation par Ruby, ce qui peut conduire à exécuter du code sur le serveur.
Ruby précise que le problème dépasse GitLab : une application est concernée
quand elle compile une regex à partir d'une chaîne contrôlée par un attaquant,
avec Regexp.new, Regexp.union, Regexp.compile ou une interpolation dans un
motif.
Regexp.new(params[:q]) # concerné : le motif vient du visiteur
/#{params[:filtre]}/ # concerné : interpolation d'une saisie
/\A\d{4}\z/ # sans risque : motif écrit par le développeurCe qui ne marche pas, et ce qu'on ne verra pas
Regexp.timeoutn'arrête pas ces bugs.- Plafonner la longueur du motif est peu fiable : des motifs courts suffisent.
- Ruby n'a pas demandé de CVE à ce jour. Les enregistrements de GitLab ne nomment que GitLab comme produit : un scanner qui compare les CVE aux versions de Ruby installées n'a rien à rapprocher. Il faut suivre les quatre CVE de GitLab. Ruby en avait attribué en 2022 et 2024 pour des bugs de même nature, et sa documentation décrit toujours les motifs non fiables comme un simple risque de déni de service.
Comment s'y prendre
Passer à 4.0.9, 3.4.12 ou 3.3.13. La 4.0.8 ne contient pas le correctif de
CVE-2026-110264; les 3.4.12 et 3.3.13 sont les premières de leur série à en porter. Ruby 3.2 et antérieur ne sera pas corrigé : la 3.2 est en fin de vie depuis le 1er avril 2026 (3.2.11 en dernière version).Chercher dans le code les endroits où une saisie alimente un motif. Ces deux recherches donnent des pistes à trier :
Terminal grep -rnE 'Regexp\.(new|union|compile)' app lib grep -rnF '/#{' app libSans mise à jour possible, cesser de compiler des regex depuis une entrée non fiable.
GitLab auto-hébergé : GitLab embarque son propre Ruby, donc installer la version qui corrige
CVE-2026-110264suffit : 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 ou 18.11.13. GitLab.com est déjà à jour. GitLab publie aussi des règles de détection (onigmo_native_worker_crash) pour repérer des tentatives.
Source : The Hacker News, 23 octobre 2026. Source en anglais. Compléments cités par l'article : avis de Ruby, correctifs GitLab 19.5.1.