Pomoc zdalna
alerty bezpieczeństwa

Luka SSRF w GitLab (CVE-2021-39935): serwer odpytuje sieć firmy na prośbę obcego konta

Stary błąd w GitLab CE/EE pozwala kontu zewnętrznemu zmusić serwer do wysyłania żądań do sieci wewnętrznej. CISA potwierdziła ataki w 2026 roku. Wyłącz otwartą rejestrację i zaktualizuj GitLab.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 8 min czytania
Administrator IT analizuje działanie programu przy komputerze

Ten alert jest dla zarządu, CTO i CFO firm, które utrzymują własny serwer GitLab (Community lub Enterprise Edition). Werdykt: jeśli serwer ma wersję starszą niż 14.3.6, 14.4.4 lub 14.5.2, a rejestracja nowych kont jest otwarta, wyłącz dziś samodzielną rejestrację i zaplanuj aktualizację, bo CISA potwierdziła wykorzystanie tej luki w atakach.

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

Amerykańska agencja CISA 3 lutego 2026 roku dopisała podatność CVE-2021-39935 do katalogu KEV, czyli listy luk, co do których ma dowody wykorzystania w prawdziwych atakach. Błąd w GitLab pozwala użytkownikowi z kontem zewnętrznym, czyli o najmniejszych uprawnieniach, zmusić serwer do wysyłania żądań w imieniu napastnika przez interfejs CI Lint API. Serwer stoi zwykle w sieci firmy, więc może „zapukać” tam, gdzie napastnik z internetu nie sięga.

Luka jest stara: poprawkę GitLab wydał 6 grudnia 2021 roku, a rekord CVE opublikowano 13 grudnia 2021 roku. Powstała jako skutek niepełnej wcześniejszej poprawki tego samego interfejsu. Termin CISA minął 24 lutego 2026 roku.

Element

Szczegóły

Identyfikator CVE

CVE-2021-39935

Data dodania do CISA KEV

2026-02-03

Termin naprawy wg CISA

2026-02-24 (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ż 14.3.6; od 14.4 do niższych niż 14.4.4; od 14.5 do niższych niż 14.5.2. Scenariusz ze zgłoszenia wymaga włączenia naraz samodzielnej rejestracji i opcji nadającej nowym użytkownikom status zewnętrzny

Wersje bezpieczne

14.3.6, 14.4.4, 14.5.2 (pierwsze z poprawką, 6 grudnia 2021) i nowsze; dziś należy aktualizować do bieżącego, wspieranego wydania GitLab

Typ podatności

Fałszowanie żądań po stronie serwera (SSRF); CWE-918. Skutek: ujawnienie informacji i obejście zabezpieczeń, nie wykonanie kodu

Ocena CVSS

NVD: 7.5 (CVSS 3.1, WYSOKA, atak łatwy). GitLab: 6.8 (CVSS 3.1, ŚREDNIA, atak trudniejszy, ale skutki wychodzą poza serwer). NVD w CVSS 2.0: 5.0

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie kuriera, którego ochrona wpuszcza do biurowca. Ktoś stojący przed budynkiem prosi go: „skoro już jesteś w środku, zajrzyj do pokoju za recepcją i powiedz mi, co tam stoi”. Kurier nie robi nic złego z własnej woli, ma po prostu prawo wstępu, którego proszący nie ma.

Serwer GitLab jest takim kurierem. Stoi w firmowej sieci i ma dostęp do urządzeń niedostępnych z internetu. Napastnik zakłada konto przez zwykły formularz rejestracji. Konto nie widzi żadnego projektu, ale może wysłać do serwera prośbę o sprawdzenie pliku konfiguracyjnego, w której ukrywa adres wewnętrznego urządzenia. Serwer posłusznie odpytuje ten adres, a napastnik poznaje, co firma ma w środku.

💡 SSRF (Server-Side Request Forgery, fałszowanie żądań po stronie serwera) to błąd, w którym napastnik zmusza serwer do wysyłania żądań pod wskazane adresy, także wewnętrzne. CI Lint API to funkcja GitLab sprawdzająca poprawność plików konfiguracji automatycznych zadań. Użytkownik zewnętrzny to konto o najmniejszych uprawnieniach, bez wglądu w firmowe projekty. KEV to katalog CISA z lukami potwierdzonymi jako wykorzystywane.

Scenariusz

Normalnie

Z podatnością

Ktoś zakłada konto przez formularz

Konto zewnętrzne nie widzi projektów

Nadal nie widzi projektów

To konto wywołuje CI Lint API

Brak dostępu do sieci wewnętrznej

Serwer wysyła żądania pod adresy wskazane przez napastnika

Wewnętrzne panele bez hasła (drukarki, narzędzia, urządzenia)

Niewidoczne z internetu

Mogą zostać odpytane przez serwer GitLab

Wiedza o sieci firmy

Tylko zespół IT

Napastnik buduje mapę urządzeń

Status zewnętrzny nowych kont

Chroni projekty przed obcymi

Nie chroni przed tą luką

Chaotyczne i niepoukładane kable w serwerowniźródło: pexels.com

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 serwera GitLab dostępnego z internetu z otwartą rejestracją (lub istniejącego konta zewnętrznego). CISA ocenia, że nie da się go w pełni zautomatyzować, a skutek techniczny określa jako częściowy.

Etap

Czas

Akcja hakerów

Wynik

1. Rozpoznanie

T+0 min

Wyszukanie serwerów GitLab w starej wersji z otwartym formularzem rejestracji

Lista celów

2. Założenie konta

T+kilka minut

Rejestracja przez zwykły formularz

Konto zewnętrzne bez dostępu do projektów

3. Fałszowanie żądań

T+kilkanaście minut

Wywołania CI Lint API z adresami z sieci wewnętrznej

Serwer odpytuje wewnętrzne adresy

4. Mapowanie sieci

T+godziny

Sprawdzanie, które urządzenia i usługi odpowiadają

Mapa baz danych, paneli i narzędzi bez hasła

5. Celowany atak

T+dni do tygodni

Wykorzystanie zebranej wiedzy do kolejnego, precyzyjnego ataku

Firma dowiaduje się o nim dużo później

Konkretne scenariusze zagrożenia

  • 🟠 Scenariusz 1: kilkunastoosobowa firma programistyczna ma otwartą rejestrację dla współpracowników; obca osoba zakłada konto i przez serwer mapuje wewnętrzne bazy danych i panele urządzeń.
  • 🟠 Scenariusz 2: wewnętrzne narzędzie postawione bez hasła, „bo jest tylko w sieci wewnętrznej”, zostaje odczytane przez serwer GitLab na prośbę napastnika.
  • 🔴 Scenariusz 3: zebrane informacje posłużą do celowanego włamania w innym miejscu sieci, a po tygodniach nikt nie łączy go z założonym kiedyś kontem.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Sama luka nie daje przejęcia serwera, ale na serwerze GitLab leży kod firmy i klientów, a sam serwer ma dostęp do sieci wewnętrznej. Najgroźniejsze jest to, że napastnik przestaje zgadywać, a firma o niczym nie wie. Serwer w wersji 14.x nieaktualizowany od 2021 roku zwykle ma też inne, poważniejsze luki.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Zwykle brak natychmiastowego przestoju; przestój przy późniejszym, celowanym ataku

Tygodnie

10 tys. do 100 tys. PLN (aktualizacja starej instalacji, ewentualny przestój)

Bezpieczeństwo danych

Ujawnienie informacji z wewnętrznych usług i mapy sieci

Godziny do dni

20 tys. do 120 tys. PLN (analiza, zabezpieczenie usług wewnętrznych)

Finansowy

Koszty reakcji, gdy zebrana wiedza posłuży do poważniejszego włamania

Tygodnie do miesięcy

20 tys. do 300 tys. PLN łącznie

Reputacyjny

Pytania klientów, których kod lub dane są na serwerze

Miesiące

20 tys. do 200 tys. PLN (utracone zlecenia)

Prawny

Zgłoszenie do UODO w ciągu 72 godzin, jeśli ujawnione dane obejmują dane osobowe; możliwa kara RODO do 20 mln EUR lub 4% rocznego obrotu, zależnie od okoliczności; odpowiedzialność wobec klientów za ich kod

72 godziny od wykrycia

10 tys. do 80 tys. PLN (obsługa prawna), bez ewentualnej kary

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

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

Macierz ryzyka dla firmy z GitLab starszym niż 14.3.6/14.4.4/14.5.2 i otwartą rejestracją Wpływ 5 | . . . . . 4 | . . . . . 3 | . . . ■ . ← ŚREDNIE / WYSOKIE 2 | . . . . . 1 | . . . . . +-------------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: wpływ jest średni (ujawnienie informacji i obejście zabezpieczeń, bez wykonania kodu), a prawdopodobieństwo wysokie, bo CISA potwierdza ataki i luka jest łatwa do wykorzystania przy otwartej rejestracji; firma z zamkniętą rejestracją i aktualnym GitLab jest poza zasięgiem tej luki.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Sprawdzić wersję GitLab w panelu administracyjnym

Dziś

Administrator GitLab

2

🔴 NATYCHMIAST

Wyłączyć samodzielną rejestrację, jeśli nie jest niezbędna, i zapraszać użytkowników imiennie

Dziś

Administrator GitLab

3

🟠 PILNIE

Zaktualizować GitLab co najmniej do 14.3.6, 14.4.4 lub 14.5.2, a docelowo do bieżącego wspieranego wydania

Do 7 dni

Administrator / DevOps

4

🟠 PILNIE

Przejrzeć listę kont, usunąć te, których nikt nie rozpoznaje, zwłaszcza założone przez formularz

Do 3 dni

Administrator GitLab

5

🟠 PILNIE

Przejrzeć logi pod kątem wywołań CI Lint API z kont zewnętrznych

Do 7 dni

Dział IT

6

🟡 WAŻNIE

Zabezpieczyć hasłem wewnętrzne panele i usługi, które dziś działają bez logowania

Do 30 dni

Administrator sieci

7

🟡 WAŻNIE

Ograniczyć ruch wychodzący z serwera GitLab do sieci wewnętrznej tylko do potrzebnych adresów

Do 30 dni

Administrator sieci

Jeśli aktualizacja nie jest dostępna

GitLab wydał poprawki w grudniu 2021 roku, więc docelowo trzeba zaktualizować serwer. Poniższe miary ograniczają ryzyko do tego czasu; efektywność to ocena ekspercka.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Wyłączenie samodzielnej rejestracji

Wysoka wobec opisanego scenariusza; nie chroni przed już istniejącymi kontami zewnętrznymi

Łatwa

Usunięcie nieznanych kont zewnętrznych

Średnia

Łatwa

Ograniczenie ruchu z serwera GitLab do sieci wewnętrznej (zapora)

Średnia do wysokiej: serwer nie dosięgnie zbędnych adresów

Średnia

Dostęp do GitLab tylko przez VPN

Wysoka: obcy nie założą konta

Średnia

Przed i po działaniu

Stan

Przed działaniem

Po działaniu

Rejestracja kont

Otwarta dla każdego

Tylko zaproszenia imienne

Wersja GitLab

Podatna, sprzed grudnia 2021

Aktualne, wspierane wydanie

Konta zewnętrzne

Nieprzejrzane

Tylko znane osoby

Ruch z serwera do sieci wewnętrznej

Bez ograniczeń

Tylko do potrzebnych adresów

Wewnętrzne panele

Część bez hasła

Zabezpieczone logowaniem

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA). Ocena CISA: wykorzystanie aktywne, atak nie w pełni automatyzowalny, skutek techniczny częściowy

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA KEV: Unknown)

Ocena CVSS

7.5 WYSOKA wg NVD (CVSS 3.1); 6.8 ŚREDNIA wg GitLab (CVSS 3.1); 5.0 wg NVD (CVSS 2.0)

PoC dostępny publicznie?

Brak publicznych informacji o gotowym kodzie ataku; publiczne jest zgłoszenie w programie nagród za błędy (HackerOne)

Liczba atakowanych firm

Brak publicznych informacji

Kto zgłosił błąd

Badacz o pseudonimie minhli, zgłoszenie z 17 czerwca 2021 jako niepełna poprawka wcześniejszego SSRF

Prognoza EPSS

Ok. 0,36 na 23 sierpnia 2026, percentyl 0,984

Oceny różnią się, bo producent wlicza konieczną konfigurację (trudniejszy atak), ale uznaje, że skutki wychodzą poza serwer, a NVD odwrotnie. Wspólny wniosek jest jeden:

Sygnały zagrożenia dla CVE-2021-39935 CVSS 3.1 (NVD) 7.5/10 ███████████████░░░░░ WYSOKA CVSS 3.1 (GitLab) 6.8/10 ██████████████░░░░░░ ŚREDNIA EPSS (próba w 30 dni) ~36% ███████░░░░░░░░░░░░░ WYSOKA jak na tło EPSS percentyl 98,4% ████████████████████ czołówka CISA KEV TAK ████████████████████ ataki potwierdzone

Linia czasu incydentu

2021-06-17 Badacz minhli zgłasza niepełną poprawkę SSRF w CI Lint API 2021-12-06 GitLab wydaje 14.5.2, 14.4.4 i 14.3.6 z poprawką 2021-12-13 Publikacja CVE-2021-39935 2026-02-03 CISA dodaje lukę do katalogu KEV 2026-02-24 Termin naprawy wg CISA dla agencji federalnych 2026-08-23 EPSS ok. 0,36, percentyl 0,984 ... prawie 5 lat od poprawki 2026-09-17: TUTAJ JESTEŚMY

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

Komunikat producenta o wydaniu z poprawką: about.gitlab.com: GitLab 14.5.2 security release . Wpis w NVD: nvd.nist.gov/vuln/detail/CVE-2021-39935 .

Lp.

Zadanie

Kto

Deadline

1

Potwierdzić, czy firma utrzymuje własny serwer GitLab i czy jest dostępny z internetu

CTO

DZISIAJ

2

Uzyskać informację o wersji GitLab i stanie rejestracji kont

CTO

DZISIAJ

3

Zatwierdzić wyłączenie samodzielnej rejestracji

CTO

DZISIAJ

4

Zlecić przegląd kont zewnętrznych i logów CI Lint API

CTO

DO JUTRA

5

Zatwierdzić termin aktualizacji do bieżącego wydania

CTO

DO JUTRA

6

Oszacować koszt aktualizacji wieloletniej instalacji (może wymagać kilku kroków pośrednich)

CFO

DO JUTRA

7

Sprawdzić, czy umowy z klientami nakładają obowiązki przy incydencie dotyczącym ich kodu

CFO

DO JUTRA

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Jaka jest wersja naszego serwera GitLab?

[wersja]

🔴

2

Czy samodzielna rejestracja kont jest włączona?

TAK / NIE

🔴

3

Czy nowi użytkownicy dostają automatycznie status zewnętrzny?

TAK / NIE

🟠

4

Ile kont zewnętrznych istnieje i czy wszystkie są rozpoznane?

[liczba]

🟠

5

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

TAK / NIE

🟠

6

Jakie usługi w sieci wewnętrznej działają bez hasła?

[lista]

🟡

7

Kiedy planujemy aktualizację do bieżącego wydania?

[data]

🟡

Pytania diagnostyczne dla managera

  • ✓ Czy wiem, gdzie firma przechowuje kod swój i klientów oraz kto za ten serwer odpowiada?
  • ✓ Czy mamy regularny rytm aktualizacji, czy reagujemy tylko na pojedyncze alarmy?
  • ✓ Czy otwarte formularze rejestracji w naszych systemach są świadomą decyzją?
  • ✓ Czy wewnętrzne systemy są chronione tylko tym, że „stoją w sieci wewnętrznej”?
  • ✓ Czy potrafimy wskazać, kto założył każde konto w naszych narzędziach?

Podsumowanie

CVE-2021-39935 pozwala osobie, która założy konto na serwerze GitLab starszym niż 14.3.6, 14.4.4 lub 14.5.2, zmusić serwer do odpytywania sieci wewnętrznej firmy. CISA potwierdza wykorzystanie, a poprawka czeka od grudnia 2021 roku, więc wyłączenie otwartej rejestracji to zadanie na dziś, a aktualizacja do bieżącego wydania 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ń.