Opublikowano poprawki do języka programowania Ruby w wersjach 3.3.13, 3.4.12 i 4.0.9, w których usunięto krytyczną lukę (CVE-2026-110264), prowadzącą do przepełnienia liczb całkowitych podczas kompilacji specjalnie sformatowanych wyrażeń regularnych. Luka ta może być używana do ataków na projekty napisane w języku Ruby, które wykorzystują dane zewnętrzne w wyrażeniach regularnych. Potwierdzono również możliwość wykorzystania tej luki do zdalnego wykonywania kodu na platformie współpracy GitLab. Problem został dodatkowo zablokowany w aktualizacjach GitLab: 19.5.1, 19.4.3, 19.3.6, 19.2.9, 19.1.9, 19.0.10 oraz 18.11.13. Luka otrzymała najwyższy poziom zagrożenia wynoszący 10 na 10.
Luka występuje w silniku wyrażeń regularnych Onigmo i prowadzi do przepełnienia wewnętrznych identyfikatorów podczas kompilacji szablonu z dużą liczbą powtórzeń. Problem objawia się tylko w aplikacjach korzystających z danych zewnętrznych w wyrażeniach regularnych, przetwarzanych przez metody Regexp.new, Regexp.union i Regexp.compile lub literały w postaci «/ #{input} /». Ograniczenie rozmiaru wyrażenia regularnego lub czasu jego przetwarzania przez metodę Regexp.timeout nie blokuje luki, ponieważ do ataku mogą być używane krótkie szablony.
W GitLab luka może być wykorzystywana przez użytkownika nieautoryzowanego z powodu podstawienia w wyrażeniu regularnym danych zewnętrznych. Szczegóły metody eksploatacji na razie nie są ujawniane (zgodnie z zasadami GitLab informacje stają się dostępne po 30 dniach od publikacji poprawki), jednak w sieci już rejestrowane są próby ataków na użytkowników GitLab. Pośrednie oznaki przeprowadzenia ataku mogą obejmować wzrost liczby awaryjnych zakończeń interpreter Ruby oraz wzrost błędów w logach, związanych z przekroczeniem limitu czasu na renderowanie strony podczas przetwarzania plików org.
Oprócz CVE-2026-110264 w silniku wyrażeń regularnych usunięto jeszcze trzy luki: CVE-2026-89078 (podwójne zwolnienie pamięci przy niemożności parsowania szablonu po jego zmianie), CVE-2026-93577 oraz CVE-2026-97229 (przepełnienia liczb całkowitych podczas obliczania rozmiaru kompilowanego szablonu).
Źródło: opennet.ru
