Jak oznaczać treści AI, by nie dostać kary? Zapisz się na bezpłatne szkolenie o AI Act
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Jak oznaczać treści AI, by nie dostać kary? Zapisz się na bezpłatne szkolenie o AI Act
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Gitea to otwartoźródłowa, samodzielnie hostowana platforma Git. Została napisana w języku Go, a jej repozytorium na GitHubie ma prawie 60 tysięcy gwiazdek.
Pod koniec lipca załatano w niej krytyczną podatność, która umożliwiała zdalne wykonanie kodu. Każdy użytkownik instancji przy domyślnych uprawnieniach może przekształcić zawartość przesłanego patcha w aktywny Git hook i wykonywać polecenia powłoki jako konto usługi Gitea.
Luka otrzymała numer CVE-2026-60004 i ocenę 9.8 w skali CVSS. Dotyczy wersji od 1.17 do 1.27.0 (bez 1.27.1) i została naprawiona w wersji 1.27.1. Chociaż podatne API wymaga uwierzytelnienia oraz uprawnień do zapisu w repozytorium, domyślna konfiguracja umożliwia rejestrację nowych użytkowników. Potencjalny atakujący może więc utworzyć konto i repozytorium, a następnie wykorzystać podatność do przeprowadzenia ataku.
Lukę zgłosił badacz bezpieczeństwa posługujący się pseudonimem NightRang3r. Biuletyn bezpieczeństwa opublikowano 28 lipca 2026 r.
Problematyczny jest endpoint /api/v1/repos/{owner}/{repo}/diffpatch. Dostarczany w zapytaniu patch aplikowany jest w tymczasowym repozytorium typu bare. Oznacza to, że jego katalog główny jest jednocześnie katalogiem $GIT_DIR, w którym znajdują się m.in. katalogi objects, refs i hooks.
Podatne wersje wywołują git apply z opcjami –index, –recount, –cached i –binary, dodając opcję awaryjną -3 (o ile serwer korzysta z Git w wersji 2.32 lub nowszej). Atakujący przesyła ten sam patch dwukrotnie, aby utworzyć kolizję add/add. Następnie mechanizm trójstronnego scalania (-3) wykonuje checkout ścieżki znajdującej się w indeksie. W rezultacie wykonywalny plik umieszczony w hooks/post-index-change trafia do katalogu hooków Git i staje się aktywny. Git uruchamia go podczas aktualizacji indeksu.
W ramach PoC wykorzystano zwykłe konto użytkownika i utworzono prywatne repozytorium, dwukrotnie wysłano złośliwy patch i pobrano wynik polecenia. Wykorzystanie podatności daje atakującemu uprawnienia konta, z którego uruchomiona jest Gitea na serwerze. Może to doprowadzić do ujawnienia konfiguracji aplikacji i środowiska, treści repozytoriów, zawartości bazy danych, a także – o ile instancja z nich korzysta – poświadczeń OAuth.
Podatność załatano w wersji 1.27.1. Administratorom instancji Gitea polecamy pilną aktualizację do tej właśnie wersji (lub najnowszej, jeśli przeoczyliście tę aktualizację ;-))
Gitea poinformowała, że instancje w ramach usługi Cloud (czyli zarządzane przez twórców narzędzia) zostaną zaktualizowane automatycznie. W opublikowanym biuletynie bezpieczeństwa nie wspomniano o przypadkach wykorzystania podatności, ale zamieszczono proof-of-concept (PoC) demonstrujący problem.
Tymczasową poprawką może być wyłączenie możliwości samodzielnego zakładania nowych kont na instancji. Aby to zrobić, należy skorzystać z opcji DISABLE_REGISTRATION, a szczegóły zawarto w dokumentacji. Nie likwiduje to jednak podatności ani nie chroni przed wykorzystaniem jej przez istniejących już użytkowników posiadających uprawnienia do zapisu w repozytorium. Przy czym uprawnienia te w większości konfiguracji nie stanowią żadnej bariery – wystarczy stworzyć własne repozytorium, by mieć uprawnienia do zapisu w nim.
Aby zminimalizować skutki podobnych podatności w różnych otwartoźródłowych narzędziach (które na pewno będą się pojawiać – zarówno narzędzia, jak i luki w nich) polecamy dbać o regularne aktualizacje, a wszelkie wewnętrzne usługi (np. tylko dla osób w organizacji) chować za VPN-em.
Źródła:
~Tymoteusz Jóźwiak