Bezpečnostní hrozby · 29. října 2026

GitLab: kritická chyba CVSS 10,0 může umožnit spustit kód na serveru, aktualizace nemusí stačit

GitLab 12. října 2026 opravil kritickou chybu CVE-2026-97229, přes kterou může útočník za určitých podmínek spustit kód na serveru. Projekt Alpine Linux zaznamenal pokus o její zneužití. Pokud GitLab běží na samostatně instalovaném Ruby, je nutné aktualizovat i Ruby.

Aktualizace

30. října 2026: 29. října 2026 přibyla CVE-2026-97229 do katalogu CISA KEV. Útočníci ji tedy už aktivně zneužívají. Pokud jste ještě neaktualizovali, udělejte to přednostně.

Co se stalo

GitLab je platforma, na které firmy uchovávají zdrojový kód, řeší úkoly a spouštějí automatická sestavení a nasazení (CI/CD). Řada organizací ji provozuje na vlastním serveru. 12. října 2026 vydal GitLab opravné verze 19.4.2, 19.3.5 a 19.2.8, které mimo jiné opravují kritickou chybu CVE-2026-97229. Podle GitLabu mohla za určitých podmínek umožnit nepřihlášenému uživateli spustit libovolný kód na serveru přes speciálně upravený regulární výraz v konfiguraci CI/CD.

Chyba je v Onigmo, knihovně pro zpracování regulárních výrazů zabudované v jazyce Ruby, na kterém GitLab běží. GitLab ji opravil úpravou Ruby ve svých balíčcích a kontejnerových obrazech. Opravené verze samotného Ruby vyšly až 22. a 23. října 2026, uvádí The Hacker News.

Projekt Alpine Linux 28. října 2026 oznámil, že se útočník pokusil chybu zneužít na jeho GitLab serveru. Alpine nenašel důkaz, že útok uspěl, ale nemůže ho vyloučit, a proto server postavil znovu od nuly a resetoval hesla všech účtů. Ke 28. říjnu chyba nebyla v katalogu CISA KEV a ani evropská databáze EUVD neeviduje potvrzené zneužívání.

Proč je to nebezpečné

Jde o přetečení celého čísla (CWE-190). Představte si starý tachometr v autě: když překročí 999 999, ukáže zase samé nuly. Program, kterému se takto „přetočí“ počítadlo, najednou špatně odhadne, kolik místa má pro data. Útočník toho může využít k přepsání paměti a spuštění vlastního kódu. Zde k tomu dochází při zpracování regulárního výrazu, tedy vzoru pro vyhledávání v textu, který GitLab čte z konfigurace CI/CD.

GitLab uvádí, že útok může za určitých podmínek provést i nepřihlášený uživatel přes internet. Firma Rapid7 sestavila v laboratoři funkční útok a 13. října 2026 zveřejnila ukázkový kód. V jejím scénáři musí útočník nejdřív zapsat upravené soubory do veřejného projektu a nepřihlášený je až poslední požadavek. Na serverech, kde se noví uživatelé mohou sami registrovat a zakládat projekty, ale tato překážka prakticky odpadá.

V testu Rapid7 útok spouštěl příkazy pod uživatelem git, pod kterým GitLab běží. Podle Alpine by při úspěšném útoku mohly uniknout údaje uživatelů, hashe hesel, tajemství dvoufaktorového ověření, proměnné CI/CD, tokeny runnerů, přihlašovací údaje integrací a soukromé repozitáře.

  • CVSS 10,0 (verze 3.1) je nejvyšší možné skóre závažnosti na stupnici 0 až 10. Přidělil ho samotný GitLab.
  • EPSS odhaduje pravděpodobnost zneužití v příštích 30 dnech. K 29. říjnu 2026 je to 18,4 %, což je víc než u 97,2 % hodnocených zranitelností.
  • CISA KEV je seznam chyb, jejichž zneužívání potvrdila americká agentura CISA. Tato chyba v něm ke 28. říjnu 2026 nebyla.

Koho se to týká

Týká se to GitLab Community Edition (CE) i Enterprise Edition (EE) provozovaných ve vlastní režii (self-managed), ve všech typech instalace:

  • 19.2 před verzí 19.2.8
  • 19.3 před verzí 19.3.5, včetně 19.3.4, kterou GitLab původně uváděl jako opravenou
  • 19.4 před verzí 19.4.2

Zvláštní riziko mají instalace zkompilované ze zdrojového kódu a vlastní kontejnerové obrazy, které instalují Ruby samostatně. Tam aktualizace GitLabu chybu neodstraní, dokud se neaktualizuje i Ruby, jak zjistil projekt Alpine Linux.

Netýká se to služeb GitLab.com a GitLab Dedicated, které GitLab už opravil. Větve 19.5, 19.1, 19.0 a 18.11 GitLab mezi dotčenými neuvádí. Nejvíce ohrožené jsou servery dostupné z internetu s veřejnými projekty nebo otevřenou registrací.

Jak zjistit, zda jste zasaženi

Verzi najdete v administraci GitLabu (Admin area, přehled Dashboard) nebo na stránce /help. Na serveru s oficiálním balíčkem pomohou tyto příkazy, které pouze čtou:

sudo gitlab-rake gitlab:env:info
head -n 1 /opt/gitlab/version-manifest.txt

U oficiálního kontejneru spusťte totéž uvnitř kontejneru (název gitlab nahraďte svým):

docker exec gitlab head -n 1 /opt/gitlab/version-manifest.txt

U instalace ze zdrojového kódu nebo vlastního obrazu zjistěte i verzi GitLabu a Ruby, které používá uživatel git. Opravené jsou Ruby 3.3.13, 3.4.12, 4.0.9 nebo novější, Ruby 3.2 opravu nedostane.

cd /home/git/gitlab && sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H ruby -v

Jak to opravit

Postupujte v tomto pořadí:

  • Zálohujte GitLab a jeho konfiguraci podle návodu GitLabu.
  • Instalace z oficiálního balíčku nebo oficiálního kontejneru aktualizujte na nejnovější verzi své větve. K 21. říjnu 2026 jsou to 19.4.3, 19.3.6 a 19.2.9, chybu opravují už 19.4.2, 19.3.5 a 19.2.8. Vydání z 21. října opravují i samostatnou chybu CVE-2026-110264.
  • Servery na verzi 19.3.4 aktualizujte na 19.3.6, verze 19.3.4 opravená není.
  • U instalace ze zdrojového kódu nebo vlastního obrazu aktualizujte GitLab a zároveň Ruby na 3.3.13, 3.4.12, 4.0.9 nebo novější. Ruby 3.2 je od dubna bez podpory a opravu nedostane.
  • Uživatelé obrazu alpinelinux/gitlab si musí verzi 19.3.6 stáhnout znovu.
  • Po aktualizaci znovu ověřte verzi GitLabu i Ruby příkazy z předchozí sekce.

Pokud nemůžete aktualizovat hned, Rapid7 doporučuje omezit anonymní přístup k veřejným projektům, zabránit nedůvěryhodným uživatelům zakládat veřejné projekty nebo do nich zapisovat, případně zablokovat cestu CI lint. Rapid7 upozorňuje, že tyto kroky pokrývají jen jí testovaný způsob útoku a samotnou chybu neodstraňují. Jde tedy jen o dočasné řešení, než aktualizaci nasadíte.

Co když už jste mohli být napadeni

GitLab vydal šest detekčních pravidel ve formátu Sigma pro servery ve vlastní režii: Onigmo native worker crash, Graphql cilint hostile regexp, ci regexp oversized non ascii path, ci regexp guard rejection, ci lint workhorse worker crash a ci lint scripted client error burst. V lozích a monitoringu si všímejte hlavně:

  • opakovaných pádů pracovních procesů GitLabu, chyb 502 a selhaných úloh CI
  • hlášení o pádu Ruby, která ukazují na Onigmo
  • neobvykle dlouhých cest k souborům s ne-ASCII znaky a podezřelých požadavků GraphQL ciLint
  • nedávno zaregistrovaných účtů, které posílají konfigurace CI

Pozor: GitLab upozorňuje, že úspěšný útok nemusí způsobit pád. Podle Alpine by úspěšný útok nezanechal pád ani stopu ve webových lozích. Pokud server běžel na zranitelné verzi a byl dostupný z internetu, zvažte výměnu hesel, tokenů runnerů, proměnných CI/CD, přístupových tokenů a údajů integrací. Alpine v takové situaci server postavil znovu, resetoval hesla a vyměnil tajné klíče GitLabu.

Pokud najdete některý z těchto příznaků nebo vám chybí logy z kritického období, přizvěte odborníka na řešení incidentů. Před zásahy do serveru si logy zazálohujte.

Zdroje

Články sestavuje AI agent z veřejných zdrojů (výrobci, CISA, ENISA, NVD, NÚKIB, SK-CERT) a čísla verzí i CVE proti nim automaticky ověřuje. Před zásahem do produkce si postup vždy ověřte v bulletinu výrobce.

← Všechny hrozby · RSS

Potřebujete pomoct s opravou nebo kontrolou?

Pomohu vám zjistit, které systémy jsou zasažené, bezpečně je aktualizovat a zkontrolovat, zda útočník už nebyl uvnitř. Začněme úvodní konzultací, při spolupráci se odečte z ceny projektu.