CVE-2026-120263
Niskie ryzyko· EPSS 10%Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
Gdy w Gitea opcja [oauth2_client].ACCOUNT_LINKING jest ustawiona na auto (nie domyślnie) i rejestracja jest włączona, formularz rejestracji przez linkowanie konta wyszukiwał istniejące konto po nazwie użytkownika lub e-mailu z formularza, zamiast po tożsamości potwierdzonej przez dostawcę OAuth2. Atakujący z kontem u dostawcy OAuth2 mógł podać nazwę innego użytkownika, powiązać swoją tożsamość zewnętrzną z tym kontem Gitea i zalogować się jako on bez hasła, w tym jako administrator; powiązanie pozostawało aktywne przy kolejnych logowaniach.
Ocena ryzyka
Podatność umożliwia przejęcie konta innego użytkownika, w tym konta administratora, bez znajomości hasła. Prowadzi to do pełnej kompromitacji instancji Gitea.
Rekomendacja
Zaktualizuj Gitea do wersji zawierającej poprawkę, w której automatyczne linkowanie działa tylko przy zgodności e-maila lub nazwy użytkownika pochodzącej od dostawcy. Do czasu aktualizacji wyłącz opcję ACCOUNT_LINKING ustawioną na auto.
Inne podatności w Gitea
Zobacz wszystkie- CVE-2026-73273Średnie
Gitea w obsłudze przesyłania pakietów Maven wczytuje przesłane sumy kontrolne w całości do pamięci i kończy przetwarzanie przed egzekwowaniem limitów rozmiaru pakietów. Uwierzytelniony użytkownik z uprawnieniem do publikowania pakietów może przesłać zbyt duże ciało żądania do punktu końcowego sumy kontrolnej, omijając limit i wyczerpując pamięć serwera.
- CVE-2026-73135Średnie
Gitea używa niespójnych predykatów widoczności repozytoriów, a warunek stosowany przez niektóre punkty końcowe listowania repozytoriów dopuszcza repozytoria, których właściciele są ukryci przed przeglądającym. Listowania ujawniają metadane repozytoriów, mimo że bezpośrednie trasy poprawnie odmawiają dostępu z odpowiedzią 404.
- CVE-2026-73130Średnie
Gitea nie ogranicza długości pola gitignores przyjmowanego przez formularze tworzenia repozytoriów oraz API. Inicjalizacja repozytorium dzieli to pole na nazwy szablonów, wielokrotnie odczytuje wskazane szablony i buforuje ich zawartość w pamięci. Atakujący mogący tworzyć repozytoria może przesłać zbyt dużą wartość, aby wzmocnić odczyty szablonów i zużycie pamięci, pogarszając dostępność.
- CVE-2026-73126Średnie
Endpoint Gitea odpowiedzialny za odznakę statusu workflow Actions nie egzekwuje zakresu odczytu repozytorium ani ograniczenia wyłącznie do publicznych repozytoriów dla tokenu uwierzytelniającego żądanie. Token bez uprawnienia read:repository lub ograniczony do repozytoriów publicznych może pobrać najnowszy status workflow prywatnego repozytorium dostępnego dla jego właściciela. Ujawnia to prywatny status workflow poza zamierzonymi uprawnieniami delegowanymi tokenu.
- CVE-2026-71301Średnie
Endpoint Gitea do renderowania znaczników repozytorium rozwiązuje odwołania do pull requestów w tym samym repozytorium bez egzekwowania uprawnienia Pull Requests przeglądającego. Członek z dostępem tylko do Wiki w prywatnym repozytorium może wysłać żądanie podglądu znaczników i pobrać tytuł oraz ikonę stanu prywatnego pull requesta, mimo braku dostępu do Issues i Pull Requests. Ujawnia to metadane pull requestów w poprzek uprawnień jednostek repozytorium.
- CVE-2026-70407Średnie
API listy organizacji w Gitea nie egzekwuje zakresu tokenu read:organization. Token ograniczony do innej kategorii, np. read:misc, może pobrać metadane organizacji widoczne dla jego właściciela. W przypadku tokenu administratora serwisu odpowiedź może zawierać organizacje Limited i prywatne, omijając zamierzone ograniczenie delegowanego dostępu tokenu.
- CVE-2026-70406Średnie
Współdzielony helper porównywania w Gitea pomija sprawdzenie dostępu tokenu do repozytorium stosowane przy aktualizacji pull requestów. Token public-only z zakresem read:repository może przeprowadzić porównanie lub utworzenie pull requesta przez publiczne repozytorium bazowe i pobrać historię commitów oraz różnice z prywatnego repozytorium head dostępnego dla właściciela tokenu. Omija to ograniczenie public-only tokenu; nie usuwa to podstawowych sprawdzeń uprawnień repozytorium konta.
- CVE-2026-70402Średnie
Gitea tworzy katalogi i skrypty hooków Git po stronie serwera z uprawnieniami 0777 i polega na umask procesu w celu ograniczenia dostępu. Przy permisywnym umask, takim jak 0000 lub 0002, inny lokalny użytkownik mogący dotrzeć do magazynu repozytorium może zmodyfikować hook lub dodać plik wykonywalny do zapisywalnego katalogu hooków. Późniejsza operacja Git może wykonać ten plik jako konto usługi Gitea.
- CVE-2026-70400Średnie
API migracji repozytoriów w Gitea akceptuje token public-only, gdy żądanie określa utworzenie prywatnego repozytorium. Delegowany token przeznaczony do działania tylko na zasobach publicznych może utworzyć prywatne repozytorium i zadanie migracji na koncie autoryzującym lub w organizacji, w której ten użytkownik ma niezbędne uprawnienia. Zwykła ścieżka tworzenia prywatnego repozytorium odrzuca ten sam token, ale ścieżka migracji pomija to ograniczenie.
- CVE-2026-68964Średnie
Endpointy API Gitea do listy kluczy SSH i GPG użytkownika pomijają sprawdzenie widoczności profilu stosowane przez ich odpowiedniki webowe. Konto o ograniczonym dostępie może pobrać klucze publiczne, tytuły kluczy, odciski palców oraz adresy e-mail osadzone w GPG należące do użytkowników o widoczności Limited. Ujawnienie dotyczy materiału kluczy publicznych i powiązanych metadanych, a nie prywatnych kluczy kryptograficznych.
Oryginalny opis (angielski, źródło NVD)
When `[oauth2_client].ACCOUNT_LINKING` is set to `auto` (not the default) and registration is enabled, the link-account sign-up form looked up the existing account to link by the user name or email submitted in the form instead of the identity asserted by the OAuth2 provider. An attacker with an account on a configured OAuth2 provider could submit another user's name, link their external identity to that Gitea account and be signed in as it without its password, including as an administrator. The link persisted for later sign-ins. Automatic linking now only happens when the existing account matches the provider's email or provider-derived user name; otherwise the account password is required.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

