GitLab ostrzega przed krytyczną luką RCE w silniku kompilacji wyrażeń regularnych

securitybeztabu.pl 7 godzin temu

Wprowadzenie do problemu / definicja

GitLab opublikował ostrzeżenie dotyczące krytycznej podatności umożliwiającej zdalne wykonanie kodu na serwerze. Problem dotyczy komponentu odpowiedzialnego za kompilację i ewaluację wyrażeń regularnych wykorzystywanych w konfiguracjach CI/CD. Ze względu na maksymalną ocenę CVSS oraz możliwość wykorzystania luki bez uwierzytelnienia, incydent należy traktować jako priorytetowy z perspektywy bezpieczeństwa środowisk DevSecOps.

W skrócie

Podatność została oznaczona jako CVE-2026-97229 i otrzymała ocenę CVSS 10.0. Błąd wynika z przepełnienia liczb całkowitych w mechanizmie CI/CD Regular Expression Compiler. W praktyce oznacza to, iż odpowiednio spreparowane wyrażenie regularne umieszczone w konfiguracji potoku może doprowadzić do wykonania dowolnego kodu na podatnym serwerze GitLab.

Problem został usunięty w wersjach GitLab CE/EE 19.2.8, 19.3.4 oraz 19.4.2. Podatne są instalacje z gałęzi 19.2 wcześniejsze niż 19.2.8, z gałęzi 19.3 wcześniejsze niż 19.3.4 oraz z gałęzi 19.4 wcześniejsze niż 19.4.2. Usługa GitLab.com działa już na poprawionej wersji, natomiast administratorzy instalacji self-managed powinni wdrożyć aktualizacje niezwłocznie.

Kontekst / historia

Luka została zgłoszona w ramach programu bug bounty przez badacza bezpieczeństwa. Producent wskazał, iż problem dotyczy walidacji wyrażeń regularnych w kontekście konfiguracji CI/CD. Jest to kolejny przypadek, w którym obszar odpowiedzialny za przetwarzanie danych wejściowych w platformach DevOps staje się wektorem ataku o wysokim wpływie.

Znaczenie tego typu podatności jest szczególnie duże, ponieważ GitLab pełni w wielu organizacjach rolę centralnego systemu zarządzania kodem źródłowym, pipeline’ami, sekretami oraz procesami wdrożeniowymi. Kompromitacja serwera GitLab może otworzyć drogę do przejęcia repozytoriów, kradzieży danych uwierzytelniających, manipulacji artefaktami buildów i dalszego ruchu bocznego w infrastrukturze.

Analiza techniczna

Sednem problemu jest integer overflow w kompilatorze wyrażeń regularnych używanym przez mechanizmy CI/CD. Tego rodzaju błąd występuje, gdy operacje arytmetyczne na rozmiarach, indeksach lub strukturach pośrednich przekraczają oczekiwany zakres wartości. W konsekwencji aplikacja może błędnie obliczyć rozmiar bufora, przesunięcie pamięci lub wewnętrzny stan parsera.

W analizowanym przypadku skutkiem jest możliwość doprowadzenia do niebezpiecznego przetwarzania specjalnie przygotowanego wzorca regex. jeżeli komponent odpowiedzialny za parsowanie i kompilację nie odrzuci złośliwego wejścia na etapie walidacji, atakujący może wywołać stan prowadzący do wykonania dowolnego kodu w kontekście procesu serwera GitLab.

Szczególnie istotne są dwa elementy. Po pierwsze, producent wskazuje na możliwość ataku bez uwierzytelnienia. Po drugie, wektor wejściowy jest związany z konfiguracją CI/CD, czyli obszarem naturalnie przetwarzającym złożone definicje reguł i warunków. To połączenie znacząco zwiększa ryzyko operacyjne, ponieważ podatność dotyczy logiki przetwarzającej dane o wysokiej złożoności składniowej i semantycznej.

W praktyce atak mógłby polegać na dostarczeniu spreparowanej konfiguracji zawierającej złośliwe wyrażenie regularne, które uruchamia wadliwą ścieżkę przetwarzania. Choć publiczne materiały nie opisują pełnego łańcucha eksploatacji na poziomie proof-of-concept, sama charakterystyka błędu oraz maksymalna punktacja CVSS sugerują bardzo niski próg wejścia i wysoki potencjał nadużycia.

Konsekwencje / ryzyko

Najpoważniejszym skutkiem jest pełne zdalne wykonanie kodu na serwerze GitLab. Oznacza to ryzyko przejęcia kontroli nad instancją, dostępu do repozytoriów, zmiennych CI/CD, tokenów dostępowych, kluczy wdrożeniowych i innych wrażliwych danych przechowywanych lub przetwarzanych przez platformę.

W środowiskach korporacyjnych skutki mogą wykraczać poza sam GitLab. Platforma CI/CD często integruje się z rejestrami kontenerów, chmurą publiczną, systemami zarządzania sekretami, agentami wdrożeniowymi i narzędziami bezpieczeństwa. Atakujący, który uzyska wykonanie kodu na serwerze GitLab, może wykorzystać zaufane integracje do eskalacji uprawnień, sabotażu pipeline’ów, modyfikacji kodu źródłowego lub wstrzyknięcia złośliwych komponentów do łańcucha dostaw oprogramowania.

Wysoki poziom ryzyka wynika również z faktu, iż podatność nie wymaga uwierzytelnienia. Taki model zagrożenia znacząco zwiększa prawdopodobieństwo masowego skanowania internetu i szybkiego włączenia luki do arsenału grup przestępczych. Dla organizacji oznacza to konieczność natychmiastowego działania, a nie planowania aktualizacji w standardowym cyklu zmian.

Rekomendacje

Administratorzy GitLab Self-Managed powinni niezwłocznie zaktualizować środowiska do wersji 19.2.8, 19.3.4 lub 19.4.2, zależnie od utrzymywanej gałęzi. o ile szybka aktualizacja produkcji nie jest możliwa, warto wdrożyć krótkoterminowe działania ograniczające ryzyko, ale nie należy ich traktować jako zamiennika pełnego patchowania.

  • zidentyfikować wszystkie instancje GitLab CE i EE w organizacji, w tym środowiska testowe, DR i mniej widoczne wdrożenia zespołowe;
  • potwierdzić dokładną wersję każdej instancji oraz obecność podatnych gałęzi 19.2, 19.3 i 19.4;
  • przeprowadzić pilny upgrade do wersji naprawczych;
  • przejrzeć logi aplikacyjne, systemowe i audytowe pod kątem nietypowych działań związanych z konfiguracjami CI/CD;
  • zweryfikować integralność pipeline’ów, definicji repozytoriów i sekretów używanych przez runner’y;
  • obrócić tokeny, hasła i klucze, jeżeli istnieje choćby podejrzenie kompromitacji;
  • ograniczyć ekspozycję paneli administracyjnych i interfejsów GitLab do zaufanych sieci tam, gdzie jest to operacyjnie możliwe;
  • uruchomić dodatkowe monitorowanie zachowań wskazujących na próbę wykonania kodu lub nieautoryzowane modyfikacje konfiguracji.

Z perspektywy długoterminowej organizacje powinny także rozważyć segmentację infrastruktury DevOps, minimalizację uprawnień kont usługowych, izolację runnerów oraz regularne testy bezpieczeństwa komponentów odpowiedzialnych za parsowanie złożonych danych wejściowych.

Podsumowanie

CVE-2026-97229 to krytyczna podatność RCE w GitLab, związana z integer overflow w silniku kompilacji wyrażeń regularnych używanym przez CI/CD. Luka ma maksymalną ocenę CVSS 10.0 i może zostać wykorzystana bez uwierzytelnienia, co czyni ją szczególnie niebezpieczną dla instalacji self-managed.

Najważniejszy wniosek dla zespołów bezpieczeństwa i administratorów jest jednoznaczny: instancje GitLab należy zaktualizować natychmiast. W środowiskach, gdzie GitLab stanowi centralny element procesu wytwarzania oprogramowania, opóźnienie aktualizacji może przełożyć się na ryzyko kompromitacji całego łańcucha dostaw.

Źródła

  1. GitLab warns of max severity code execution vulnerability — https://www.bleepingcomputer.com/news/security/gitlab-warns-of-max-severity-rce-flaw-in-regex-compiler-engine/
  2. GitLab Critical Patch Release: 19.4.2, 19.3.4, 19.2.8 — https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/
  3. CVE Record: CVE-2026-97229 — https://www.cve.org/CVERecord?id=CVE-2026-97229
Idź do oryginalnego materiału