Pomoc zdalna
alerty bezpieczeństwa

Gitea: krytyczna luka CVE-2026-60004 pozwala przejąć serwer. Zaktualizuj do 1.27.1

CISA potwierdza aktywne ataki na Gitea (CVE-2026-60004). Luka w funkcji diffpatch pozwala uruchamiać polecenia na serwerze. Zaktualizuj do wersji 1.27.1 lub nowszej i sprawdź, czy nie doszło do włamania.

  • Paweł Niedźwiecki
Paweł Niedźwiecki
17 września 2026 10 min czytania
Fragment kodu źródłowego na ekranie komputera

Ten alert jest dla zarządu, CTO i osób odpowiedzialnych za narzędzia programistyczne w firmach, które utrzymują własny serwer Gitea. Werdykt: jeśli Twoja Gitea ma wersję od 1.17 do 1.27.0, zaktualizuj ją NATYCHMIAST do 1.27.1 lub nowszej i sprawdź, czy serwer nie został już przejęty.

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

25 sierpnia 2026 r. amerykańska agencja CISA dopisała lukę CVE-2026-60004 w Gitea do katalogu KEV (Known Exploited Vulnerabilities). Do tego katalogu trafiają wyłącznie podatności, co do których CISA ma dowody, że są wykorzystywane w realnych atakach. Termin naprawy dla amerykańskich agencji federalnych wyznaczono na 28 sierpnia 2026 r., czyli zaledwie trzy dni. CISA wymaga też przeglądu śledczego (sprawdzenia, czy nie doszło już do włamania).

Gitea to popularna, samodzielnie hostowana platforma do przechowywania kodu w repozytoriach Git (podobna do GitHub lub GitLab). Luka siedzi w funkcji diffpatch, która pozwala wgrać zmianę w postaci pliku łatki. Odpowiednio spreparowana łatka instaluje na serwerze tzw. hook Git, a ten uruchamia dowolne polecenia systemowe z uprawnieniami konta, na którym działa Gitea.

Element

Szczegóły

Identyfikator CVE

CVE-2026-60004 (komunikat producenta: GHSA-rcr6-4jqh-j84m)

Data dodania do CISA KEV

25 sierpnia 2026

Termin naprawy wg CISA

28 sierpnia 2026

Produkt

Gitea (Gitea), samodzielnie hostowany serwer repozytoriów Git

Wersje zagrożone

od 1.17 do 1.27.0 włącznie

Wersje bezpieczne

1.27.1 i nowsze (najnowsza wersja z linii 1.27 na dzień 17.09.2026: 1.27.3)

Typ podatności

Wstrzyknięcie kodu prowadzące do zdalnego wykonania poleceń (RCE), CWE-94

Ocena CVSS

9.8/10, KRYTYCZNA (CVSS 3.1, atak przez sieć, niska złożoność, bez interakcji użytkownika)

💡 CVSS to międzynarodowa skala od 0 do 10 opisująca powagę luki. Wynik 9.8 oznacza najwyższą kategorię: atak jest prosty, da się go przeprowadzić przez sieć, a skutkiem może być pełna utrata poufności, integralności i dostępności systemu.

Ważny niuans: formalnie atakujący potrzebuje zwykłego konta z prawem zapisu do dowolnego repozytorium. Jednak Gitea domyślnie pozwala na otwartą rejestrację, więc obcy człowiek z internetu może sam założyć konto, utworzyć własne repozytorium i przeprowadzić atak. Stąd ocena 9.8, a nie niższa.

2. O CO CHODZI W PROSTYCH SŁOWACH?

Wyobraź sobie biurowiec, w którym każdy gość może zarejestrować się w recepcji i dostać własną szafkę na dokumenty. Do szafki wkłada się teczki, a woźny rozkłada ich zawartość. Okazuje się, że jeśli gość dwa razy wrzuci identyczną teczkę, woźny w zamieszaniu wyjmuje z niej kartkę i przypina ją na tablicy poleceń dla całego budynku. Od tej chwili ochrona wykonuje instrukcje napisane przez gościa.

Tak właśnie działa ta luka. Gitea przetwarza łatkę w tymczasowej kopii repozytorium. Gdy ta sama łatka zostanie wysłana dwa razy, Git próbuje rozwiązać konflikt i zapisuje plik tam, gdzie nie powinien: w katalogu hooks. Plik staje się aktywnym skryptem, który Git sam uruchamia, a razem z nim wykonują się polecenia atakującego.

Scenariusz

Normalnie

Z podatnością

Nowe konto z otwartej rejestracji

Użytkownik może tworzyć własne repozytoria i wgrywać do nich kod

Użytkownik może uruchomić polecenia systemowe na serwerze Gitea

Wgranie łatki przez diffpatch

Zmiana trafia do repozytorium jako zwykły plik

Zmiana staje się aktywnym hookiem Git i uruchamia się sama

Plik konfiguracyjny app.ini

Dostępny tylko dla administratora serwera

Może zostać odczytany razem z sekretami aplikacji

Hasła do bazy danych i tokeny OAuth

Ukryte w konfiguracji i zmiennych środowiskowych

Mogą trafić w ręce atakującego

Prywatne repozytoria firmy

Widoczne tylko dla uprawnionych osób

Mogą zostać skopiowane lub zmienione przez atakującego

💡 Hook Git to mały skrypt, który Git automatycznie uruchamia przy określonym zdarzeniu (np. przy zapisie zmian). Służy do automatyzacji, ale jeśli podłoży go atakujący, staje się furtką do wykonania dowolnego polecenia.
💡 RCE (Remote Code Execution) oznacza zdalne wykonanie kodu: atakujący, nie mając fizycznego dostępu do serwera, uruchamia na nim własne polecenia.
Hacker ubrany cały na czarno siedzi przed monitorami i pracuje w ciemnym pokojuźródło: magnific.com

3. JAK HAKERZY TO WYKORZYSTUJĄ?

Poniżej typowy przebieg ataku dla tej klasy podatności. To scenariusz poglądowy, dopasowany do rzeczywistych warunków luki: serwer z Git w wersji 2.32 lub nowszej, włączona funkcja diffpatch, katalog tymczasowy z prawem zapisu i uruchamiania oraz konto z prawem zapisu (lub otwarta rejestracja). Nie jest to opis konkretnego incydentu.

Typowy przebieg ataku

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Etap

Czas

Akcja hakerów

Wynik

1. Rozpoznanie

T+0 min

Automatyczne wyszukiwanie serwerów Gitea w internecie i odczyt numeru wersji

Lista serwerów z wersją od 1.17 do 1.27.0

2. Wejście

T+5 min

Rejestracja nowego konta (przy otwartej rejestracji) lub użycie wykradzionego konta pracownika

Konto z prawem zapisu

3. Przygotowanie

T+10 min

Utworzenie prywatnego repozytorium

Własne repozytorium pod pełną kontrolą atakującego

4. Uruchomienie

T+15 min

Dwukrotne wysłanie tej samej łatki przez diffpatch

Aktywny hook Git, polecenia wykonują się na serwerze

5. Kradzież sekretów

T+30 min

Odczyt app.ini, zmiennych środowiskowych, haseł do bazy danych i tokenów

Dostęp do bazy danych i integracji

6. Rozszerzenie ataku

T+kilka godzin

Kopiowanie repozytoriów, użycie kluczy i tokenów do systemów CI/CD, chmury, serwerów wdrożeniowych

Kradzież kodu, możliwe podłożenie złośliwych zmian w produktach firmy

Istotna cecha tego ataku: wynik poleceń można zapisać w samym repozytorium i pobrać zwykłym klonowaniem. Atakujący nie potrzebuje wychodzącego połączenia z serwera, więc blokada ruchu wychodzącego nie zatrzyma kradzieży danych.

Konkretne scenariusze zagrożenia

  • 🔴 Scenariusz 1: Kradzież kodu źródłowego i tajemnic firmy. Atakujący kopiuje wszystkie repozytoria, w tym prywatne projekty klientów, a w nich często zapisane przez pomyłkę hasła i klucze API.
  • 🔴 Scenariusz 2: Zatruty łańcuch dostaw. Atakujący po cichu zmienia kod lub skrypty budowania, a Twoja firma wdraża u siebie lub u klientów oprogramowanie z tylnymi drzwiami.
  • 🔴 Scenariusz 3: Punkt wejścia do całej sieci. Z przejętego serwera Gitea atakujący używa haseł do bazy, tokenów OAuth i kluczy wdrożeniowych, aby dostać się do innych systemów, co może zakończyć się szyfrowaniem danych i żądaniem okupu.

4. DLACZEGO TO RYZYKO DLA TWOJEJ FIRMY?

Serwer z kodem to często najcenniejszy zasób firmy technologicznej: jest w nim własność intelektualna, konfiguracje systemów i dostępy do środowisk produkcyjnych. Luka daje atakującemu uprawnienia konta usługi Gitea, a więc wszystko, co to konto widzi.

Obszar biznesu

Potencjalny wpływ

Czas do wystąpienia

Koszty szacunkowe

Operacyjny

Wyłączenie Gitea na czas analizy, wstrzymanie wdrożeń i pracy zespołów programistycznych

Od razu po wykryciu

10 000-60 000 zł (przestój i praca zespołu)

Bezpieczeństwo danych

Wyciek kodu, haseł, tokenów i danych z bazy Gitea (adresy e-mail, konta użytkowników)

Minuty po ataku

20 000-100 000 zł (analiza powłamaniowa, wymiana wszystkich sekretów)

Finansowy

Koszt odtworzenia systemów, utracone zlecenia, możliwe żądanie okupu przy dalszym ataku

Dni do tygodni

50 000-500 000 zł

Reputacyjny

Utrata zaufania klientów, jeśli wyciekł ich kod lub trafiły do nich zatrute wersje

Tygodnie do miesięcy

Trudne do wyceny, możliwa utrata kluczowych kontraktów

Prawny

Obowiązek zgłoszenia naruszenia danych osobowych do UODO w ciągu 72 godzin, roszczenia klientów z umów

72 godziny od wykrycia naruszenia

Kary RODO do 20 mln EUR lub 4% rocznego obrotu (w praktyce zależne od skali i reakcji firmy) plus koszty prawne

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

Macierz ryzyka (dla serwera Gitea dostępnego z internetu, w wersji podatnej)

Wpływ 5 | . . . . ■ ← KRYTYCZNA (CVSS 9.8, aktywne ataki, publiczny PoC) 4 | . . . . . 3 | . . . . . 2 | . . . . . 1 | . . . . . +--------------- 1 2 3 4 5 Prawdopodobieństwo

Interpretacja: pełne przejęcie serwera daje wpływ 5/5, a potwierdzone ataki, gotowy skrypt i domyślnie otwarta rejestracja dają prawdopodobieństwo 5/5; jeśli Gitea działa tylko w sieci wewnętrznej z wyłączoną rejestracją, prawdopodobieństwo spada, ale wpływ pozostaje krytyczny.

5. CO MUSISZ ZROBIĆ NATYCHMIAST?

Producent wydał poprawkę: Gitea 1.27.1 (27 lipca 2026 r.). Aktualizacja jest jedynym pełnym rozwiązaniem. Rozsądnie jest od razu przejść na najnowszą wersję z linii 1.27 (na dzień 17 września 2026 r. jest to 1.27.3), która zawiera także kolejne poprawki bezpieczeństwa.

Lp.

Priorytet

Działanie

Termin

Odpowiedzialny

1

🔴 NATYCHMIAST

Sprawdzić wersję wszystkich instancji Gitea (panel administratora lub /api/v1/version)

Dziś, w ciągu 1 godziny

Administrator IT

2

🔴 NATYCHMIAST

Zaktualizować Gitea do 1.27.1 lub nowszej (zalecane: najnowsza 1.27.x)

Dziś

Administrator IT / DevOps

3

🔴 NATYCHMIAST

Jeśli aktualizacja dziś jest niemożliwa: wyłączyć otwartą rejestrację i ograniczyć dostęp do serwera

Dziś

Administrator IT

4

🟠 PILNIE

Przegląd powłamaniowy: nowe konta, nowe repozytoria, żądania do diffpatch w logach, nieznane pliki hooków

Do jutra

Administrator IT / bezpieczeństwo

5

🟠 PILNIE

Przy jakimkolwiek podejrzeniu: wymiana sekretów z app.ini, haseł do bazy, tokenów OAuth i kluczy wdrożeniowych

Do jutra

DevOps

6

🟡 WAŻNIE

Sprawdzić, czy konto usługi Gitea ma minimalne uprawnienia i czy serwer jest odizolowany od reszty sieci

W ciągu 7 dni

Architekt IT

7

🟡 WAŻNIE

Wprowadzić stałe monitorowanie komunikatów bezpieczeństwa Gitea i katalogu CISA KEV

W ciągu 14 dni

CTO

Jeśli aktualizacja nie jest dostępna

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

Producent w komunikacie nie podał obejść, zaleca wyłącznie aktualizację. Poniższe miary to tymczasowe ograniczenie ryzyka, nie zamiennik poprawki.

Czasowa miara ochronna

Efektywność

Łatwość wdrożenia

Wyłączenie otwartej rejestracji (DISABLE_REGISTRATION = true w sekcji [service] pliku app.ini)

Średnia (ocena ekspercka): zamyka drogę dla obcych, nie chroni przed przejętym kontem pracownika

Łatwa

Blokada żądań do ścieżek zawierających diffpatch na serwerze pośredniczącym (reverse proxy), zarówno w API, jak i w interfejsie WWW

Wysoka (ocena ekspercka), jeśli blokada obejmuje wszystkie ścieżki

Średnia

Udostępnienie Gitea tylko przez VPN lub z zaufanych adresów IP

Średnia (ocena ekspercka): ogranicza krąg atakujących do osób z dostępem do sieci

Średnia

Katalog tymczasowy Gitea bez prawa uruchamiania plików (montowanie z opcją noexec)

Średnia (ocena ekspercka): usuwa jeden z warunków ataku, wymaga testu działania Gitea

Trudna

Ograniczenie tworzenia repozytoriów i prawa zapisu tylko do zaufanych osób

Niska do średniej (ocena ekspercka)

Łatwa

Zestawienie przed i po

Stan

Przed działaniem

Po działaniu

Wersja Gitea

Od 1.17 do 1.27.0, podatna

1.27.1 lub nowsza, poprawiona

Kto może przeprowadzić atak

Każdy z internetu (przy otwartej rejestracji)

Luka usunięta, atak tą drogą niemożliwy

Rejestracja kont

Często otwarta domyślnie

Zamknięta lub kontrolowana przez administratora

Sekrety aplikacji

Mogły zostać odczytane

Zweryfikowane, w razie wątpliwości wymienione

Wiedza o ewentualnym włamaniu

Brak

Przegląd logów, kont i repozytoriów wykonany

6. KONTEKST I SKALA ZAGROŻENIA

Aspekt

Informacja

Czy jest wykorzystywana?

TAK (potwierdzone przez CISA). W ocenie SSVC CISA oznaczyła wykorzystanie jako aktywne, a atak jako możliwy do zautomatyzowania

Grupy przestępcze

Brak publicznych informacji

Kampanie ransomware

Brak potwierdzenia (CISA: Unknown)

Ocena CVSS

9.8/10, KRYTYCZNA (CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

PoC dostępny publicznie?

TAK. Komunikat bezpieczeństwa Gitea zawiera działający skrypt w Pythonie, a NVD wskazuje także zewnętrzne repozytorium z narzędziem dotyczącym tej luki

Liczba atakowanych firm

Brak publicznych danych

Kto zgłosił lukę

Badacz o pseudonimie NightRang3r

Wymóg CISA

Zastosowanie poprawek oraz przegląd śledczy (Forensics Triage)

Szczególnie niepokojące jest połączenie trzech czynników: gotowy skrypt ataku opublikowany razem z komunikatem, domyślnie otwarta rejestracja oraz to, że Gitea często działa na małych, samodzielnie utrzymywanych serwerach bez stałego nadzoru. Od publikacji poprawki minęło ponad siedem tygodni, więc serwery, które wciąż nie zostały zaktualizowane, należy traktować jako potencjalnie przejęte.

Linia czasu incydentu

2026-07-27: Gitea wydaje wersję 1.27.1 z poprawką (fix: git patch apply) 2026-07-28: Publikacja komunikatu GHSA-rcr6-4jqh-j84m z opisem i skryptem PoC 2026-08-25: CISA dodaje CVE-2026-60004 do katalogu KEV (aktywne ataki) 2026-08-26: Publikacja CVE-2026-60004 w bazie NVD 2026-08-28: Termin naprawy wyznaczony przez CISA 2026-08-29: Gitea wydaje wersję 1.27.3 z kolejnymi poprawkami bezpieczeństwa 2026-09-17: TUTAJ JESTEŚMY

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

Źródła do przekazania zespołowi: komunikat bezpieczeństwa Gitea GHSA-rcr6-4jqh-j84m , ogłoszenie wydania Gitea 1.27.1 oraz opis w bazie NVD .

Lp.

Zadanie

Kto

Deadline

1

Potwierdzić, czy firma (lub dostawca) używa Gitea i w ilu instancjach

CTO

DZISIAJ

2

Uzyskać pisemne potwierdzenie wersji każdej instancji

Administrator IT

DZISIAJ

3

Zaktualizować wszystkie instancje do 1.27.1 lub nowszej

Administrator IT / DevOps

DZISIAJ

4

Wyłączyć otwartą rejestrację, jeśli nie jest potrzebna biznesowo

Administrator IT

DZISIAJ

5

Przeprowadzić przegląd powłamaniowy (konta, repozytoria, logi diffpatch, hooki)

Administrator IT / bezpieczeństwo

DO JUTRA

6

Zdecydować o wymianie sekretów i haseł powiązanych z Gitea

CTO

DO JUTRA

7

Ocenić obowiązek zgłoszenia naruszenia do UODO, jeśli wykryto włamanie

CFO / inspektor ochrony danych

DO JUTRA (maks. 72 h od wykrycia)

8

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

CFO

DO JUTRA

8. PYTANIA DO TWOJEGO ZESPOŁU IT

#

Pytanie

Odpowiedź

Priorytet

1

Ile mamy instancji Gitea i w jakich wersjach działają?

[odpowiedź]

🔴

2

Czy któraś instancja jest dostępna z internetu bez VPN?

[odpowiedź]

🔴

3

Czy rejestracja nowych kont jest otwarta?

[odpowiedź]

🔴

4

Czy w logach od lipca 2026 r. są żądania do diffpatch lub konta i repozytoria, których nikt nie rozpoznaje?

[odpowiedź]

🔴

5

Jakie sekrety są dostępne dla konta usługi Gitea (baza danych, OAuth, klucze wdrożeniowe, tokeny CI/CD)?

[odpowiedź]

🟠

6

Czy serwer Gitea jest odizolowany od systemów produkcyjnych i innych serwerów?

[odpowiedź]

🟠

7

Kto odpowiada za śledzenie komunikatów bezpieczeństwa Gitea i jak szybko wdrażamy poprawki?

[odpowiedź]

🟡

Pytania diagnostyczne dla managera

Tomasz Kaczmarek
Tomasz Kaczmarek

Mogę Ci jakoś pomóc?

  • ✓ Czy dostaliśmy potwierdzenie aktualizacji z numerem wersji, a nie tylko zapewnienie „zrobione”?
  • ✓ Czy ktoś sprawdził, czy włamanie nie nastąpiło przed aktualizacją?
  • ✓ Czy wiemy, jakie dane klientów i jaki kod są przechowywane w Gitea?
  • ✓ Czy mamy kopię zapasową repozytoriów sprzed lipca 2026 r., z której można odtworzyć stan w razie wykrycia zmian?
  • ✓ Czy nasi dostawcy oprogramowania, którzy przechowują nasz kod, też używają Gitea i czy zareagowali?

Podsumowanie

CVE-2026-60004 to krytyczna, aktywnie wykorzystywana luka w Gitea od 1.17 do 1.27.0, która pozwala uruchamiać polecenia na serwerze, a przy otwartej rejestracji może ją wykorzystać każdy z internetu. Poprawka jest dostępna od 27 lipca 2026 r. w wersji 1.27.1, więc liczy się aktualizacja i sprawdzenie, czy serwer nie został przejęty wcześniej.

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ń.