Podatności Gitea
186 znanych podatności CVE w Gitea, przetłumaczonych i ocenionych.
- CVE-2026-96589Średnie
Podczas transferu prywatnego repozytorium do użytkownika bez dostępu, Gitea przyznaje mu tymczasowy dostęp do odczytu jako współpracownikowi. Odrzucenie lub anulowanie transferu nie cofało tej współpracy, więc odbiorca zachowywał trwały dostęp do odczytu do prywatnego repozytorium, w tym do kodu, zgłoszeń, pull requestów i wiki, oraz mógł je klonować. Właściciel repozytorium nie był powiadamiany. Dostęp przyznany przez transfer jest teraz usuwany, a współprace istniejące przed transferem są zachowywane.
- CVE-2026-96580Wysokie
Gitea rozszerza statyczną macierz `strategy.matrix` w przepływie pracy do pełnego iloczynu kartezjańskiego bez limitu rozmiaru podczas tworzenia przebiegu, przed zastosowaniem bramki zatwierdzania pull requestów z forka. Użytkownik, który może otworzyć pull request z forka, może przesłać mały plik przepływu pracy, którego macierz rozszerza się do bardzo dużej liczby zadań, zużywając pamięć serwera i potencjalnie kończąc proces Gitea. Nie jest wymagany runner. Macierze statyczne powyżej 256 kombinacji są teraz odrzucane przed rozszerzeniem.
- CVE-2026-96404Wysokie
Gdy instalator internetowy Gitea jest dostępny dla bazy danych, która już zawiera użytkowników, na przykład po zresetowaniu `INSTALL_LOCK` do `false`, przesłanie formularza instalacji z nazwą administratora pasującą do istniejącego konta wydawało uwierzytelnioną sesję dla tego konta bez weryfikacji hasła. Jeśli konto jest administratorem, sesja daje pełny dostęp administracyjny, w tym możliwość zmiany hasła konta. Bazy danych z jednym użytkownikiem również nie wymagały potwierdzenia ponownej instalacji.
- CVE-2026-96400Średnie
Przy ustawieniu `[migrations] ALLOWED_DOMAINS` na pasujący wpis, taki jak `*` lub wildcard nazwy hosta, walidacja adresów URL migracji w Gitea mogła zezwalać na adresy zastrzeżone i link-local, takie jak `169.254.169.254`, nawet gdy `ALLOW_LOCALNETWORKS = false`. Lista blokowania sieci lokalnych nie obejmowała tych zakresów, a nazwa hosta pasująca do listy dozwolonych była akceptowana niezależnie od jej rozwiązanego adresu. Użytkownik, który może rozpocząć migracje na takiej instancji, mógł dotrzeć do tych adresów z serwera Gitea; domyślna pusta konfiguracja `ALLOWED_DOMAINS` nie jest dotknięta.
- CVE-2026-96399Wysokie
Wyrażenie regularne zewnętrznego trackera problemów repozytorium zawierające naprzemienne grupy przechwytujące mogło generować nieprawidłowe indeksy wycinka podczas renderowania odniesień do problemów w Gitea, powodując błąd runtime, który kończył proces Gitea. Użytkownik, który może edytować ustawienia zewnętrznego trackera problemów repozytorium, mógł sprawić, że późniejsze renderowanie pasującej treści, takie jak przeglądanie README, spowoduje awarię instancji dla wszystkich użytkowników.
- CVE-2026-95112Średnie
Podczas przetwarzania treści zgłoszeń i komentarzy, Gitea skanował cały poprzedzający tekst w poszukiwaniu słów kluczowych akcji, takich jak "closes" lub "fixes", raz dla każdego linku Markdown, co dawało czas przetwarzania kwadratowy w stosunku do rozmiaru wejścia. Uwierzytelniony użytkownik mogący przesyłać treść zgłoszeń lub komentarzy mógł wysłać spreparowaną treść o rozmiarze około 1 MB, która zajmuje rdzeń CPU przez kilka minut, trzymając otwartą transakcję bazy danych.
- CVE-2026-89430Wysokie
Gitea walidował adres zdalny mirrora push przeciwko listom dozwolonych i blokowanych `[migrations]` tylko podczas tworzenia mirrora. Każda synchronizacja przekazywała zapisany adres bezpośrednio do `git push`, więc nazwa, która później rozwiązała się na zablokowany lub wewnętrzny adres, była nadal osiągana. Użytkownik z dostępem administracyjnym do repozytorium, w tym repozytoriów, które sam tworzy, mógł skierować synchronizację mirrora push na wewnętrzne usługi Git i wymusić wypchnięcie zawartości repozytorium do nich.
- CVE-2026-79960Wysokie
Gdy push był uwierzytelniany kluczem wdrożeniowym, Gitea rejestrował właściciela repozytorium jako wypychającego, więc kontrole uprawnień w potoku hooka push oceniały właściciela zamiast klucza wdrożeniowego. Posiadacz zapisywalnego klucza wdrożeniowego mógł tworzyć chronione tagi bez znajdowania się na liście dozwolonych tagów i zmieniać widoczność repozytorium przez opcje push, na przykład czyniąc prywatne repozytorium publicznym. Pull requesty utworzone przez przepływ AGit z kluczem wdrożeniowym były również przypisywane do właściciela.
- CVE-2026-70357Wysokie
Gitea sprawdza nazwę hosta migracji repozytorium względem list dozwolonych i zablokowanych przed wywołaniem Git, ale podproces Git niezależnie rozwiązuje nazwę hosta podczas łączenia. Atakujący, który może rozpocząć migrację i kontrolować DNS celu, może zmienić adres między walidacją a połączeniem, aby dotrzeć do zablokowanego wewnętrznego adresu. Dotknięta ścieżka to operacja klonowania Git; walidacja w dialerze klienta HTTP migracji nie chroni niezależnie łączącego się podprocesu Git.
- CVE-2026-104636Wysokie
Gitea sprawdza początkowy zdalny URL dla mirrorów push, zdalnych kontroli wiki i pobierania głów pull requestów migracji, ale późniejsze operacje Git podążają za przekierowaniami HTTP bez ponownej walidacji celu. Administrator repozytorium używający dozwolonego punktu końcowego, który przekierowuje, może sprawić, że klient Git Gitea wyśle żądania na adres, który polityka hostów wychodzących w przeciwnym razie zablokowałaby. Wpływ zależy od skonfigurowanej polityki i wewnętrznych usług dostępnych z serwera.
- CVE-2026-104632Wysokie
Gitea Actions blokuje zadania przebiegów workflow z pull requestów od pierwszego kontrybutora z forka, dopóki opiekun nie zatwierdzi przebiegu. Ścieżka ponownego uruchomienia wymagała tylko, aby przebieg był zakończony, i budowała zadania nowej próby bez uwzględnienia oczekującego zatwierdzenia, więc gdy użytkownik z uprawnieniami zapisu do Actions anulował przebieg oczekujący na zatwierdzenie, a następnie uruchomił go ponownie, nowe zadania zostały utworzone jako oczekujące, a nie zablokowane, podczas gdy przebieg nadal rejestrował, że wymagane jest zatwierdzenie. Anulowanie i ponowne uruchamianie starych kontroli z forka jest rutynową czynnością, która nie obejmuje kontroli zatwierdzenia, więc tam, gdzie Actions jest włączone i zarejestrowany jest pasujący runner, kod workflow pobrany z głowy pull requesta z forka może zostać uruchomiony na runnerach repozytorium bez wyraźnego zatwierdzenia.
- CVE-2026-104626Wysokie
Użytkownik, który może otworzyć pull request z forka, może umieścić treść workflow ze współdzieloną grupą współbieżności na poziomie przebiegu w przebiegu Gitea Actions oczekującym na zatwierdzenie. Gdy późniejszy przebieg w tej grupie anuluje zablokowane zadanie, przebieg staje się terminalny, ale nadal oznaczony jako wymagający zatwierdzenia. Jeśli opiekun później zatwierdzi przebieg, Gitea przekazał już anulowane zadanie z powrotem przez przygotowanie współbieżności, ustawił je na oczekujące i umożliwił przejęcie przez pasujący runner, wykonując kod workflow kontrolowany przez fork. Wykorzystanie wymaga późniejszego zatwierdzenia przez opiekuna, włączonych Actions i runnera akceptującego zadania repozytorium.
- CVE-2026-103670Wysokie
Gdy wstawiano przebieg Gitea Actions, starsze przebiegi w tej samej grupie współbieżności na poziomie workflow były anulowane bez sprawdzania, czy nowy przebieg nadal wymaga zatwierdzenia. Ponieważ przebiegi z pull requestów z forków są wstawiane pod repozytorium bazowym, użytkownik, który może otworzyć pull request z forka, może anulować zaufane trwające przebiegi, które dzielą grupę współbieżności z włączoną opcją `cancel-in-progress`, bez zatwierdzenia i bez uruchamiania żadnego kodu. Na self-hosted runnerach może to przerwać wdrożenia i pozostawić częściowy stan.
- CVE-2026-103667Średnie
Rejestr kontenerów Gitea serwował pobieranie blobów z `Content-Type` pobranym z typu mediów zadeklarowanego w wypchniętych manifestach obrazów, bez `Content-Disposition` ani restrykcyjnej polityki bezpieczeństwa treści. Użytkownik, który może wypychać obrazy kontenerów, może opublikować blob zawierający HTML i JavaScript z typem mediów `text/html`. Gdy ofiara uwierzytelniona w instancji otworzy URL bloba w przeglądarce, skrypt uruchamia się na originie Gitea i może wykonywać działania jako ofiara, takie jak tworzenie tokenów API.
- CVE-2026-103504Wysokie
Zmiana uprawnień zespołu organizacji przez API z tylko polem `permission` nie odbudowywała dostępu per-jednostka zespołu, a żądany poziom nie był stosowany jako limit. Po tym, jak właściciel organizacji zdegradował zespół, na przykład z admina do read, członkowie zespołu zachowali poprzednie uprawnienia jednostek, w tym dostęp do zapisu do repozytoriów zespołu. Formularz internetowy nie był dotknięty.
- CVE-2026-101029Średnie
Kontrole egress dla migracji repozytoriów i mirrorów pull w Gitea mogły zostać ominięte przez nazwę hosta zwracającą wiele odpowiedzi DNS, ponieważ walidowany adres niekoniecznie był adresem, z którym Git później się łączył. Użytkownik z niskimi uprawnieniami, który może tworzyć migracje lub mirrory, mógł skierować serwer do wewnętrznych usług, czytając i zapisując do dostępnych wewnętrznych punktów końcowych Git lub HTTP. Treść z wewnętrznych odpowiedzi mogła być dodatkowo ujawniona przez komunikaty błędów migracji i mirrorów.
- CVE-2026-101027Wysokie
W Gitea, gdy skonfigurowano `[migrations] ALLOWED_DOMAINS`, nazwa hosta z listy dozwolonych była akceptowana bez weryfikacji jej rozwiązanego adresu względem ograniczeń sieci lokalnej. Użytkownik mogący uruchamiać migracje repozytoriów i kontrolujący DNS dozwolonej nazwy hosta mógł wymusić jej rozwiązanie na adres loopback lub prywatny, omijając `ALLOW_LOCALNETWORKS = false` i uzyskując dostęp do usług wewnętrznych z serwera Gitea. Instancje bez skonfigurowanego `ALLOWED_DOMAINS` nie są dotknięte tym obejściem.
- CVE-2026-59763Średnie
Nieograniczone metadane plików pakietów Arch mogą powodować amplifikację zasobów podczas przesyłania pakietów w Gitea.
- CVE-2026-58511Niskie
Nagłówek autoryzacji webhooka jest zwracany w postaci zwykłego tekstu przez API.
- CVE-2026-58510Średnie
Poprawka ClearRepoWatches nie została zastosowana do ścieżki API EditRepo — siostrzana ścieżka kodu zachowuje nieaktualne obserwacje przy zmianie repozytorium z publicznego na prywatne.
- CVE-2026-58507Średnie
Ujawnienie istnienia prywatnego repozytorium przez punkt końcowy go-get Meta.
- CVE-2026-58445Niskie
Oracle enumeracji identyfikatorów etykiet między repozytoriami przez nieograniczone API DeleteIssueLabel.
- CVE-2026-58444Średnie
Obejście egzekwowania zakresu osobistego tokena dostępu na stronie głównej repozytorium (`GET /{owner}/{repo}`) ujawnia zawartość prywatnego repozytorium.
- CVE-2026-58442Średnie
SSRF w migracji repozytorium przez obejście listy dozwolonych DNS z wieloma odpowiedziami.
- CVE-2026-58441Średnie
SSRF w restore-repo przez nieoczyszczony Head.CloneURL w pull_request.yml.
- CVE-2026-58440Średnie
Webhooki utworzone przez współpracownika nadal działają po cofnięciu mu dostępu do repozytorium, co umożliwia ciągłą eksfiltrację zawartości prywatnego repozytorium w czasie rzeczywistym. Problem wynika z niepełnego usuwania uprawnień w funkcji `DeleteCollaboration`.
- CVE-2026-58439Wysokie
Ochrona gałęzi może zostać ominięta poprzez zmianę celu pull requesta, co pozwala zachować nieaktualną flagę zatwierdzenia `official`. Umożliwia to wprowadzanie zmian do chronionych gałęzi bez wymaganego zatwierdzenia.
- CVE-2026-58438Wysokie
Międzyrepozytoryjna podatność IDOR w usuwaniu zależności problemu (issue-dependency) pozwala atakującemu manipulować i komentować prywatne repozytoria, do których nie ma dostępu. Brakuje odpowiedniej autoryzacji na poziomie obiektu.
- CVE-2026-58437Wysokie
Podatność umożliwia manipulację widocznością repozytorium poprzez opcje push w Git. Atakujący może zmienić widoczność repozytorium (np. z prywatnego na publiczne) bez odpowiednich uprawnień.
- CVE-2026-58436Wysokie
Funkcja ParseAcceptLanguage w oprogramowaniu pośredniczącym Locale powoduje atak DoS o złożoności kwadratowej na nieuwierzytelnionych żądaniach. Wysyłanie specjalnie spreparowanych nagłówków Accept-Language może przeciążyć serwer.
- CVE-2026-58435Średnie
Podatność w Gitea LFS umożliwia eskalację uprawnień za pomocą kluczy wdrożeniowych (deploy keys). Osoba posiadająca klucz wdrożeniowy może uzyskać wyższe uprawnienia niż zamierzono.
- CVE-2026-58434Wysokie
Metadane prywatnego repozytorium pozostają dostępne po cofnięciu dostępu użytkownikowi. Oznacza to, że informacje o repozytorium (np. nazwa, opis) mogą być nadal widoczne dla osób, które utraciły uprawnienia.
- CVE-2026-58432Średnie
W kodzie code.gitea.io/gitea występuje brak autoryzacji oraz obejście autoryzacji poprzez kontrolowany przez użytkownika klucz, nieprawidłowe przypisanie uprawnień do krytycznych zasobów oraz ujawnienie wrażliwych informacji nieupoważnionemu aktorowi.
- CVE-2026-58431Średnie
Ograniczenie tokenów API tylko do publicznych zasobów nie jest egzekwowane na trasach API zespołów. Oznacza to, że token przeznaczony tylko do publicznego dostępu może uzyskać dostęp do danych zespołów, które powinny być prywatne.
- CVE-2026-58429Średnie
Podatność umożliwia obejście zakresu osobistych tokenów dostępu typu public-only w punktach końcowych organizacji i uprawnień. Oznacza to, że token przeznaczony tylko do operacji publicznych może uzyskać dostęp do operacji wymagających szerszych uprawnień.
- CVE-2026-58428Średnie
Podatność umożliwia obejście listy dozwolonych rozszerzeń dla załączników wydań poprzez formularz edycji wydania w przeglądarce. Jest to wariant wcześniejszej podatności CVE-2025-68939.
- CVE-2026-58427Wysokie
Podatność powoduje wyciek listy członków prywatnej organizacji przez punkt końcowy /members API. Jest to niekompletna poprawka dla PR #38145.
- CVE-2026-58425Średnie
Podatność w introspekcji tokenów OAuth powoduje zwracanie metadanych tokenów wydanych innym klientom, co narusza sekcję 4 specyfikacji RFC 7662.
- CVE-2026-58420Średnie
Podatność umożliwia lokalne włączenie pliku (Local File Inclusion) poprzez użycie URI file:// w funkcji przywracania migracji. Atakujący może odczytać dowolne pliki z systemu plików serwera.
- CVE-2026-58417Wysokie
Podatność w REST API ujawnia publicznie członkostwo w organizacjach prywatnych. Osoby nieuprawnione mogą uzyskać informacje o członkach prywatnych organizacji.
- CVE-2026-58416Wysokie
Podatność w zadaniach Actions dla pull requestów z forka umożliwia odczyt trzeciego prywatnego repozytorium poprzez gałąź collaborative-owner. Brakuje zabezpieczenia dla fork-PR.
- CVE-2026-58314Wysokie
W Gitea 1.26.2 znaleziono dwie podatności typu Server-Side Request Forgery (SSRF). Umożliwiają one atakującemu wysyłanie żądań z serwera do wewnętrznych zasobów.
- CVE-2026-57897Średnie
Podatność umożliwia ujawnienie informacji między repozytoriami poprzez API Actions na poziomie organizacji (Run/Job APIs). Atakujący może uzyskać dane z innych repozytoriów.
- CVE-2026-57894Wysokie
Podatność w migracji repozytoriów pozwala na podążanie za przekierowaniami HTTP Git po walidacji URL (allow/block), co umożliwia eksfiltrację wewnętrznych repozytoriów Git.
- CVE-2026-57886Średnie
Podatność umożliwia ponowne powiązanie załączników do zgłoszeń/komentarzy między repozytoriami, co może ujawnić treść prywatnych załączników.
- CVE-2026-56755Średnie
Podatność powoduje odmowę usługi (wyczerpanie CPU i pamięci) przez złożoność O(N^2) przy konkatenacji stringów podczas przesyłania pakietów Debiana.
- CVE-2026-56657Średnie
Parser kluczy SSH w Gitea jest podatny na odmowę usługi, co może prowadzić do przeciążenia systemu.
- CVE-2026-55987Wysokie
Logowanie przez OAuth2 może reaktywować konto dezaktywowane przez administratora, jeśli źródło autoryzacji nie używa tokenów odświeżania (niepełna poprawka #38009).
- CVE-2026-55986Średnie
API zarządzania e-mailami omija ograniczenia funkcji ManageCredentials, umożliwiając nieautoryzowane operacje na adresach e-mail.
- CVE-2026-55984Niskie
Odwołanie do wskaźnika null w API AddTime powoduje uwierzytelnioną odmowę usługi.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

