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.
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
ź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
🔴 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.4A = opcja sieci lokalnej dla webhooków WYŁĄCZONA (domyślnie)B = opcja sieci lokalnej WŁĄCZONAWpł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.
Sygnały zagrożenia dla CVE-2021-22175CVSS 3.1 (NVD) 9.8/10 ████████████████████ KRYTYCZNACVSS 3.1 (GitLab) 6.7/10 █████████████░░░░░░░ ŚREDNIAEPSS (próba w 30 dni) ~53% ███████████░░░░░░░░░ WYSOKACISA KEV TAK ████████████████████ ataki potwierdzoneRansomware (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.42021-06-11 Publikacja CVE-2021-22175 w NVD2026-02-18 CISA dodaje lukę do katalogu KEV2026-03-11 Termin naprawy wg CISA dla agencji federalnych2026-09-10 Najnowsze wydanie GitLab: 19.3.22026-09-16 EPSS 0,534, percentyl 0,989 ... ponad 6 miesięcy od terminu CISA, ponad 5 lat od publikacji2026-09-17: TUTAJ JESTEŚMY
7. BEZPOŚREDNI LINK DO DZIAŁANIA: checklista dla CTO/CFO
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.
Luka w N-able N-central pozwala bez logowania uruchomić kod na serwerze, z którego zarządza się komputerami wielu firm. CISA potwierdza ataki. Zaktualizuj do 2026.3.1.14, odetnij konsolę od internetu i sprawdź konta.
Luka o ocenie 10.0 w konsoli Cisco Secure Firewall Management Center pozwala ominąć logowanie i przejąć urządzenie. Cisco i CISA potwierdzają ataki. Zaktualizuj FMC i sprawdź ślady włamania.
Błąd w bibliotece Starlette, podstawie FastAPI, pozwala omijać zabezpieczenia części aplikacji, a w łańcuchu z luką LiteLLM przejąć bramkę AI. CISA potwierdza ataki. Zaktualizuj do 1.0.1 lub nowszej.
Klikając „Akceptuję”, zgadzasz się na przechowywanie plików cookie przez UXU w celu poprawy działania strony, analizy i wsparcia działań marketingowych.