Pomoc zdalna
alerty bezpieczeństwa

Luka SSRF w GitLab (CVE-2021-22175): stary serwer z kodem jako furtka do sieci firmy

Stare wersje GitLaba z włączonymi żądaniami webhooków do sieci lokalnej pozwalają obcym bez konta sięgać do systemów wewnętrznych. CISA potwierdza ataki. Wyłącz tę opcję dziś i zaktualizuj GitLab.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 10 min czytania
Wtyki kabli wpięte w opisane gniazda konsolety

Ten alert jest dla zarządu, CTO i CFO firm, które mają własny serwer GitLab (u siebie, w chmurze albo u wykonawcy oprogramowania). Werdykt: jeśli GitLab ma wersję starszą niż 13.6.7, 13.7.7 lub 13.8.4 i włączone zezwolenie na żądania webhooków do sieci lokalnej, wyłącz to ustawienie dziś i zaplanuj aktualizację w tym tygodniu, bo CISA potwierdza wykorzystanie tej luki w atakach.

1. CO SIĘ STAŁO? Fakty w pigułce

Amerykańska agencja CISA 18 lutego 2026 roku dopisała podatność CVE-2021-22175 do katalogu KEV, czyli listy luk, o których ma dowody, że są wykorzystywane w prawdziwych atakach. To błąd opisany już w czerwcu 2021 roku, więc atakujący sięgają po instalacje, które od lat nie były aktualizowane.

Luka to fałszowanie żądań po stronie serwera (SSRF) w mechanizmie webhooków GitLaba. Gdy administrator zezwolił webhookom na łączenie się z siecią wewnętrzną, napastnik bez konta, nawet przy wyłączonej rejestracji nowych użytkowników, może zmusić serwer GitLab do wysyłania żądań pod wskazane adresy w sieci firmy. Serwer staje się wtedy pośrednikiem, przez który napastnik sięga do systemów niewidocznych z internetu.

Termin naprawy wyznaczony przez CISA agencjom federalnym minął 11 marca 2026 roku.

Element

Szczegóły

Identyfikator CVE

CVE-2021-22175

Data dodania do CISA KEV

2026-02-18

Termin naprawy wg CISA

2026-03-11 (21 dni od wpisu)

Produkt

GitLab Community Edition i Enterprise Edition (instalacje własne)

Wersje zagrożone

Od 10.5 do wersji niższych niż 13.6.7, od 13.7 do niższych niż 13.7.7, od 13.8 do niższych niż 13.8.4. Wykorzystanie wymaga włączonej opcji zezwalającej webhookom i integracjom na żądania do sieci lokalnej (domyślnie wyłączona)

Wersje bezpieczne

13.6.7, 13.7.7, 13.8.4 i nowsze. Najnowsza wersja GitLab w dniu publikacji alertu: 19.3.2 (10 września 2026). Wersje z 2021 roku są dawno bez wsparcia, więc zalecana jest aktualizacja do wspieranej gałęzi

Typ podatności

Fałszowanie żądań po stronie serwera (SSRF); CWE-918

Ocena CVSS

NVD: 9.8 KRYTYCZNA (CVSS 3.1, pełny wpływ na poufność, integralność i dostępność). GitLab (producent): 6.7 ŚREDNIA w rekordzie producenta, wyświetlana w NVD jako 6.8 (CVSS 3.1, wysoka złożoność ataku, wpływ tylko na poufność). NVD w starszej skali CVSS 2.0: 6.8

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie firmową centralę telefoniczną z telefonistką. Osoba z zewnątrz nie może zadzwonić bezpośrednio na wewnętrzny numer księgowości ani do serwerowni, bo te numery nie są dostępne z miasta. Ale telefonistka, która siedzi w środku, może połączyć się z każdym wewnętrznym numerem. Jeśli ktoś przekona ją, żeby „zadzwoniła w jego imieniu” pod wskazany numer wewnętrzny i powtórzyła, co usłyszała, to obcy rozmawia z systemami, do których sam nie ma dostępu.

W GitLabie taką telefonistką jest mechanizm webhooków, który po zdarzeniu w projekcie (np. wgraniu kodu) sam wysyła powiadomienie pod ustalony adres. Domyślnie GitLab nie pozwala tych powiadomień kierować do sieci wewnętrznej. Jeśli jednak ktoś kiedyś to włączył, na przykład żeby webhook uruchamiał testy na serwerze obok, podatna wersja pozwala napastnikowi bez logowania wykorzystać serwer GitLab jako pośrednika.

💡 Webhook to automatyczne powiadomienie wysyłane przez serwer pod wskazany adres, gdy coś się wydarzy. SSRF (Server-Side Request Forgery) to atak, w którym napastnik zmusza serwer do wykonania żądania w jego imieniu, zwykle do systemów niedostępnych z internetu. Sieć lokalna to adresy wewnętrzne firmy, np. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16. KEV to katalog CISA z lukami potwierdzonymi jako wykorzystywane w atakach.

Scenariusz

Normalnie

Z podatnością

Webhook po wgraniu kodu

Powiadamia zatwierdzony serwis zewnętrzny

Tak samo

Obca osoba bez konta

Nie ma wpływu na żądania serwera

Może skłonić serwer do żądań pod adresy wewnętrzne (przy włączonej opcji sieci lokalnej)

Wyłączona rejestracja kont

Traktowana jako ochrona przed obcymi

Nie chroni przed tą luką

Systemy wewnętrzne bez hasła (panele, bazy, API)

Niewidoczne z internetu

Osiągalne pośrednio przez serwer GitLab

Opcja sieci lokalnej wyłączona (domyślnie)

Żądania do adresów prywatnych blokowane

Luka w praktyce nie do wykorzystania

Dawna centrala telefoniczna z rzędami gniazd i stanowiskami telefonistekźródło: Pexels, Pedro Silva

3. JAK HAKERZY TO WYKORZYSTUJĄ?

Poniżej typowy przebieg ataku dla tej klasy podatności. To scenariusz poglądowy, a nie odtworzenie konkretnego incydentu. Atak wymaga, żeby serwer GitLab był osiągalny dla napastnika (zwykle z internetu) i miał włączone zezwolenie na żądania do sieci lokalnej. CISA oceniła, że ataku nie da się zautomatyzować, bo zależy od konfiguracji konkretnej instalacji.

Etap

Czas

Akcja hakerów

Wynik

1. Rozpoznanie

T+0 min

Wyszukiwanie w internecie starych instalacji GitLab i odczyt wersji

Lista potencjalnych celów

2. Sprawdzenie konfiguracji

T+kilkadziesiąt minut

Próby, czy serwer wykonuje żądania do adresów wewnętrznych

Potwierdzenie, że opcja sieci lokalnej jest włączona

3. Mapowanie sieci

T+kilka godzin

Wysyłanie przez GitLab żądań pod kolejne adresy i porty wewnętrzne

Lista usług w sieci firmy

4. Kradzież informacji

T+1 do 3 dni

Odczyt danych z wewnętrznych paneli, API lub usług bez uwierzytelnienia (np. metadanych serwera w chmurze)

Poświadczenia, konfiguracje, tokeny

5. Dalsze wejście

T+dni

Użycie zdobytych poświadczeń do logowania w innych systemach

Dostęp do infrastruktury i kodu

6. Skutki

T+tygodnie

Kradzież kodu źródłowego, podmiana konfiguracji, przygotowanie kolejnych ataków

Wyciek własności intelektualnej, przestój

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: software house ma GitLab w wersji z 2020 roku z włączonymi żądaniami do sieci lokalnej; napastnik przez webhooki odczytuje wewnętrzny panel serwera CI z zapisanymi hasłami do środowisk klientów.
  • 🔴 Scenariusz 2: GitLab działa na maszynie w chmurze, a napastnik przez SSRF odpytuje usługę metadanych i zdobywa klucze dostępu do konta chmurowego firmy.
  • 🔴 Scenariusz 3: serwer GitLab stoi u zewnętrznego wykonawcy, który nie aktualizował go od lat; firma dowiaduje się o wycieku kodu własnej aplikacji dopiero po ataku na jej klientów.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Na serwerze GitLab leży kod firmowych aplikacji, historia zmian i często konfiguracje z hasłami do środowisk. Ponadto serwer ten stoi zwykle wewnątrz sieci i ma dostęp do innych systemów. Wersja podatna na tę lukę ma co najmniej pięć lat, więc zapewne zawiera też wiele innych niezałatanych błędów.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Wstrzymanie prac programistycznych i wdrożeń na czas analizy i odbudowy

Dni do tygodni

30 tys. do 250 tys. PLN (przestój zespołu, odbudowa środowisk)

Bezpieczeństwo danych

Wyciek kodu źródłowego, haseł i kluczy do środowisk, danych z systemów wewnętrznych

Godziny do dni od wejścia

30 tys. do 200 tys. PLN (analiza powłamaniowa, wymiana poświadczeń)

Finansowy

Utracona przewaga konkurencyjna, kary umowne wobec klientów, nadużycia na koncie chmurowym

Tygodnie

50 tys. do 500 tys. PLN łącznie

Reputacyjny

Utrata zaufania klientów, dla których firma tworzy oprogramowanie

Miesiące

50 tys. do 400 tys. PLN (utracone kontrakty)

Prawny

Obowiązek zgłoszenia naruszenia do UODO w ciągu 72 godzin, jeśli wyciekły dane osobowe; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności; roszczenia klientów z umów o poufności

72 godziny od wykrycia

15 tys. do 120 tys. PLN (prawnicy, obsługa zgłoszeń), bez ewentualnej kary

Kwoty są orientacyjnymi widełkami dla małej i średniej firmy, nie danymi z tego incydentu.

Macierz ryzyka dla GitLab < 13.6.7 / 13.7.7 / 13.8.4 A = opcja sieci lokalnej dla webhooków WYŁĄCZONA (domyślnie) B = opcja sieci lokalnej WŁĄCZONA Wpływ 5 | . . . . . 4 | . . . B . ← WYSOKIE (B) 3 | . . . . . 2 | . A . . . ← NISKIE dla tej luki (A) 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: przy włączonej opcji sieci lokalnej ryzyko jest wysokie (ataki potwierdzone, brak logowania, dostęp do sieci wewnętrznej), a przy domyślnej konfiguracji ta konkretna luka jest trudna do wykorzystania; tak stara wersja GitLaba pozostaje jednak ryzykowna z powodu innych znanych błędów.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Ustalić, czy firma ma własny GitLab (także u wykonawcy lub w chmurze) i jaka jest jego wersja

Dziś

CTO

2

🔴 NATYCHMIAST

Sprawdzić w panelu administracyjnym (ustawienia sieci, żądania wychodzące), czy zezwolenie na żądania do sieci lokalnej z webhooków i integracji jest wyłączone; jeśli nie, wyłączyć

Dziś

Administrator GitLab

3

🔴 NATYCHMIAST

Jeśli webhooki muszą łączyć się z konkretnymi usługami wewnętrznymi, zastąpić ogólne zezwolenie listą dozwolonych adresów

Dziś

Administrator GitLab

4

🟠 PILNIE

Zaktualizować GitLab do wspieranej wersji (co najmniej 13.6.7, 13.7.7 lub 13.8.4, docelowo bieżąca gałąź), zgodnie ze ścieżką aktualizacji producenta

Do 7 dni

Administrator / DevOps

5

🟠 PILNIE

Przejrzeć listę webhooków we wszystkich projektach i usunąć nieznane lub nieużywane

Do 7 dni

Administrator GitLab

6

🟠 PILNIE

Wymienić hasła, tokeny i klucze zapisane w GitLabie oraz w usługach dostępnych z serwera, jeśli opcja sieci lokalnej była włączona

Do 7 dni

DevOps

7

🟡 WAŻNIE

Ograniczyć dostęp do GitLaba z internetu (VPN lub lista adresów) i ustalić cykl regularnych aktualizacji

Do 30 dni

CTO

Jeśli aktualizacja nie jest dostępna

Producent wydał poprawki w 2021 roku, a obecne wersje GitLaba są od nich wiele wydań nowsze, więc aktualizacja jest możliwa, choć przy tak starej instalacji wymaga przejścia przez kolejne wersje pośrednie. Do czasu jej przeprowadzenia pomagają poniższe miary. Oceny efektywności to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Wyłączenie zezwolenia na żądania do sieci lokalnej z webhooków i integracji

Wysoka dla tej luki: usuwa warunek jej wykorzystania. Producent zaznacza, że część usług towarzyszących może nie respektować tego filtra

Łatwa: jedno ustawienie

Lista dozwolonych adresów i domen dla żądań wychodzących zamiast otwarcia całej sieci

Wysoka, jeśli lista jest krótka

Łatwa do średniej

Utrzymanie domyślnie włączonej ochrony przed podmianą adresu (DNS rebinding)

Średnia: uzupełnia powyższe

Łatwa

Dostęp do GitLaba tylko przez VPN lub z listy adresów IP

Wysoka wobec napastników z internetu

Średnia

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Żądania webhooków do sieci wewnętrznej

Dozwolone dla dowolnych adresów

Zablokowane lub ograniczone do listy

Wersja GitLab

Sprzed 2021 roku, bez wsparcia

Wspierana gałąź z bieżącymi poprawkami

Dostęp z internetu

Serwer widoczny dla każdego

Dostęp przez VPN lub z zaufanych adresów

Poświadczenia w GitLabie

Mogły zostać odczytane

Wymienione

Wiedza o serwerze

Nikt nie pamięta, co zmieniono w ustawieniach

Konfiguracja przejrzana i opisana

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA). CISA oceniła wykorzystanie jako aktywne, z całkowitym wpływem technicznym, ale nieautomatyzowalne

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

9.8 KRYTYCZNA wg NVD (CVSS 3.1); 6.7 ŚREDNIA wg GitLab (CVSS 3.1, w NVD wyświetlana jako 6.8)

PoC dostępny publicznie?

NVD oznacza zgłoszenie w repozytorium GitLab (issue 294178) jako zawierające exploit; szczegółów nie weryfikowaliśmy

Liczba atakowanych firm

Brak publicznych informacji

Kto wykrył błąd

Badacz o pseudonimie myster, w programie nagród GitLab na platformie HackerOne

Prognoza EPSS

0,534 (około 53% szansy próby wykorzystania w 30 dni), percentyl 0,989, odczyt FIRST z 16 września 2026

Różnica między 9.8 a 6.7 wynika z założeń. NVD przyjęła najgorszy przypadek: łatwy atak i pełny wpływ. GitLab uwzględnił, że atak wymaga specyficznej konfiguracji (wysoka złożoność) i dotyczy przede wszystkim ujawnienia informacji. O tym, która ocena opisuje Twoją firmę, decyduje jedno ustawienie w panelu GitLaba.

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Sygnały zagrożenia dla CVE-2021-22175 CVSS 3.1 (NVD) 9.8/10 ████████████████████ KRYTYCZNA CVSS 3.1 (GitLab) 6.7/10 █████████████░░░░░░░ ŚREDNIA EPSS (próba w 30 dni) ~53% ███████████░░░░░░░░░ WYSOKA CISA KEV TAK ████████████████████ ataki potwierdzone Ransomware (CISA) Unknown ░░░░░░░░░░░░░░░░░░░░ brak potwierdzenia

Linia czasu incydentu

2021 Zgłoszenie błędu w programie nagród GitLab (HackerOne) 2021 Wydanie poprawek w wersjach 13.6.7, 13.7.7 i 13.8.4 2021-06-11 Publikacja CVE-2021-22175 w NVD 2026-02-18 CISA dodaje lukę do katalogu KEV 2026-03-11 Termin naprawy wg CISA dla agencji federalnych 2026-09-10 Najnowsze wydanie GitLab: 19.3.2 2026-09-16 EPSS 0,534, percentyl 0,989 ... ponad 6 miesięcy od terminu CISA, ponad 5 lat od publikacji 2026-09-17: TUTAJ JESTEŚMY

7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO

Rekord producenta z zakresami wersji: gitlab.com/gitlab-org/cves, CVE-2021-22175 . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2021-22175 .

Lp.

Zadanie

Kto

Deadline

1

Ustalić, czy firma ma własny GitLab, gdzie stoi i kto nim administruje

CTO

DZISIAJ

2

Uzyskać pisemną informację o wersji i stanie opcji żądań do sieci lokalnej

CTO

DZISIAJ

3

Zatwierdzić natychmiastowe wyłączenie opcji żądań do sieci lokalnej

CTO

DZISIAJ

4

Zatwierdzić plan aktualizacji do wspieranej wersji, z oknem serwisowym dla zespołu

CTO

DO JUTRA

5

Sprawdzić w umowie z wykonawcą, kto odpowiada za aktualizacje serwera z kodem

CFO

DO JUTRA

6

Zarezerwować budżet na aktualizację wieloetapową i ewentualną analizę powłamaniową

CFO

DO JUTRA

7

Zlecić wymianę poświadczeń zapisanych w GitLabie, jeśli opcja była włączona

CTO

DO JUTRA

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Czy mamy własną instalację GitLab (u siebie, w chmurze, u wykonawcy)?

TAK / NIE

🔴

2

Jaka jest wersja każdej instalacji GitLab?

[wersja]

🔴

3

Czy zezwolenie na żądania do sieci lokalnej z webhooków i integracji jest włączone?

TAK / NIE

🔴

4

Czy serwer GitLab jest dostępny z internetu bez VPN?

TAK / NIE

🔴

5

Kiedy GitLab był ostatnio aktualizowany?

[data]

🟠

6

Czy przejrzano webhooki we wszystkich projektach?

TAK / NIE, [data]

🟠

7

Jakie hasła i tokeny są zapisane w GitLabie i kiedy je ostatnio zmieniano?

[lista i data]

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, gdzie fizycznie leży kod źródłowy naszych aplikacji i kto ma do niego dostęp?
  • ✓ Czy serwer z kodem ma właściciela odpowiedzialnego za aktualizacje?
  • ✓ Czy zmiany w ustawieniach bezpieczeństwa serwerów są gdzieś zapisywane?
  • ✓ Czy nasza zasada łatania uwzględnia wpisy w KEV, a nie tylko ocenę CVSS?
  • ✓ Czy mamy procedurę zgłoszenia naruszenia danych do UODO w 72 godziny?

Podsumowanie

CVE-2021-22175 pozwala napastnikowi bez konta używać starego serwera GitLab jako pośrednika do sieci wewnętrznej, jeśli włączone jest zezwolenie na żądania webhooków do sieci lokalnej. CISA potwierdza ataki, a poprawki istnieją od 2021 roku, więc sprawdzenie tego ustawienia to zadanie na dziś, a aktualizacja do wspieranej wersji na ten tydzień.

Czytaj dalej

Powiązane artykuły

Zestaw zmienia się codziennie, więc przy kolejnej wizycie zobaczysz inny wycinek bloga.

Masz to samo u siebie?

Możemy się tym zająć

Krótka rozmowa wystarczy, żeby ocenić zakres prac i podać widełki kosztu. Bez zobowiązań.