CVE-2026-87722
WysokieCVSS 8.7Streszczenie
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.
Ocena ryzyka
Atakujący może wysyłać specjalnie spreparowane zapytania wyszukiwania lub żądania REST, aby wyczerpać zasoby serwera Gerrit, powodując jego niedostępność. Może to zablokować proces przeglądu kodu i wstrzymać prace deweloperskie w organizacji.
Rekomendacja
Zaktualizować Gerrit Code Review do wersji 3.12.10, 3.13.9 lub 3.14.3. Do czasu aktualizacji rozważyć ograniczenie dostępu do endpointów wyszukiwania i filtrów regex oraz monitorowanie zużycia zasobów serwera.
Inne podatności w Gerrit Code Review
Zobacz wszystkie- 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.
- CVE-2026-87720Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
Uncontrolled Resource Consumption (CWE-400 / CWE-1333) in regex search query predicates (such as RegexProjectPredicate, RegexRefPredicate, RegexPathPredicate, and sibling predicates) and REST regex filter endpoints (RegexListSearcher /projects/?r= and RefFilter /projects/{project}/branches/?r=) in Gerrit Code Review versions 2.1.6 through 3.12.9, 3.13.0 through 3.13.8, and 3.14.0 through 3.14.2 allows an unauthenticated remote attacker (or an authenticated user if anonymous read access is disabled) to cause a denial of service (CPU starvation and JVM heap exhaustion / OutOfMemoryError) via crafted search queries or REST API requests containing regular expressions with large counted repetitions or exponential DFA determinization patterns. Because the user-supplied regular expression is compiled into an unbounded dk.brics.automaton instance (new RegExp(re).toAutomaton()) on the request thread prior to index evaluation or access control visibility filtering, trivial queries can exhaust JVM heap or pin request threads regardless of heap size. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3.

