CVE-2026-87720
WysokieCVSS 7.6Streszczenie
Nieprawidłowa autoryzacja (CWE-863) w normalizacji nazw projektów (ProjectUtil.stripGitSuffix) i logice eksmisji ProjectCache (ProjectCacheImpl) w Gerrit Code Review w wersjach 2.16.0–3.12.9, 3.13.0–3.13.8 i 3.14.0–3.14.2 pozwala uwierzytelnionemu użytkownikowi (lub nieuwierzytelnionemu, jeśli repozytorium było wcześniej publiczne) na nieautoryzowane ujawnienie zawartości prywatnego repozytorium oraz trwałe przywrócenie odebranych uprawnień administratora projektu. Podatność wynika z usuwania tylko jednego końcowego sufiksu .git przy konstruowaniu klucza ProjectCache, podczas gdy JGit rozwiązuje alias do tego samego repozytorium na dysku. Problem naprawiono w wersjach 3.12.10, 3.13.9 i 3.14.3.
Ocena ryzyka
Atakujący może uzyskać dostęp do nowo utworzonych prywatnych commitów lub zapisywać do refs/meta/config, co prowadzi do wycieku kodu i eskalacji uprawnień. Może to podważyć integralność repozytoriów i bezpieczeństwo procesu wytwarzania oprogramowania.
Rekomendacja
Zaktualizować Gerrit Code Review do wersji 3.12.10, 3.13.9 lub 3.14.3. Do czasu aktualizacji zweryfikować uprawnienia projektów i monitorować nietypowe żądania zawierające powtórzone sufiksy .git.
Inne podatności w Gerrit Code Review
Zobacz wszystkie- CVE-2026-87722Wysokie
Nieograniczone zużycie zasobów (CWE-400 / CWE-1333) w predykatach wyszukiwania regex oraz endpointach filtrów REST w Gerrit Code Review w wersjach 2.1.6–3.12.9, 3.13.0–3.13.8 i 3.14.0–3.14.2 pozwala nieuwierzytelnionemu zdalnemu atakującemu (lub uwierzytelnionemu użytkownikowi, jeśli anonimowy odczyt jest wyłączony) na wywołanie odmowy usługi poprzez wyczerpanie CPU i sterty JVM (OutOfMemoryError). Podatność wynika z kompilacji wyrażeń regularnych do nieograniczonej instancji dk.brics.automaton na wątku żądania przed oceną indeksu lub filtrowaniem widoczności. Problem naprawiono w wersjach 3.12.10, 3.13.9 i 3.14.3.
- CVE-2026-87721Wysokie
Nieograniczone zużycie zasobów (CWE-400 / CWE-407) w parserze zapytań ANTLR 3 (QueryParser / Query.g) w Gerrit Code Review w wersjach 2.0.19–3.12.9, 3.13.0–3.13.8 i 3.14.0–3.14.2 pozwala nieuwierzytelnionemu zdalnemu atakującemu (lub uwierzytelnionemu użytkownikowi, jeśli anonimowy odczyt jest wyłączony) na wywołanie trwałej odmowy usługi poprzez wyczerpanie CPU i zagłodzenie puli wątków HTTP, wymagające restartu serwera. Podatność wynika z rekurencji predykatów składniowych bez memoizacji przed sprawdzeniem uprawnień oraz braku przerywania wątków po rozłączeniu klienta. Problem naprawiono w wersjach 3.12.10, 3.13.9 i 3.14.3.
Oryginalny opis (angielski, źródło NVD)
Incorrect Authorization (CWE-863) in project name normalization (ProjectUtil.stripGitSuffix) and ProjectCache eviction logic (ProjectCacheImpl) in Gerrit Code Review versions 2.16.0 through 3.12.9, 3.13.0 through 3.13.8, and 3.14.0 through 3.14.2 allows an authenticated user (or an unauthenticated user if the repository was previously public) to cause unauthorized disclosure of private repository content and durable restoration of revoked project-owner administrative privileges via crafted requests using repeated .git suffixes (such as project.git.git) across REST APIs, Gitiles, or SSH Git commands. Because Gerrit strips only a single terminal .git suffix when constructing the logical ProjectCache key while JGit (FileKey.lenient) resolves the suffixed alias to the same canonical bare repository on disk, revoking read access or removing owner rules on the canonical project name fails to evict the cached alias ProjectState during the cache validity window, enabling reads of newly created private commits or writes to refs/meta/config. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3.

