CVE-2026-87721
WysokieCVSS 8.7Streszczenie
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.
Ocena ryzyka
Niewielka liczba żądań (np. 25 pasujących do domyślnego httpd.maxThreads) może trwale zablokować wszystkie wątki HTTP, powodując niedostępność Gerrit i konieczność restartu serwera. Może to sparaliżować proces przeglądu kodu i wstrzymać prace zespołów deweloperskich.
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 zapytań oraz monitorowanie liczby i złożoności przychodzących zapytań.
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-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-407) in the ANTLR 3 search query parser (QueryParser / Query.g) in Gerrit Code Review versions 2.0.19 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 persistent denial of service (CPU exhaustion and HTTP worker thread pool starvation requiring a server restart) via crafted search queries containing deeply nested parentheses sent to query evaluation endpoints (/changes/?q=, /accounts/?q=, /groups/?query=, /projects/?query=, /Documentation/?q=, /changes/{id}/query?expression=, or SSH gerrit query). Because syntactic predicates in conditionOr and conditionAnd recurse via conditionBase without memoization prior to capability or visibility checks and worker threads do not abort when the client disconnects, a small number of requests (such as 25 requests matching default httpd.maxThreads) can permanently pin all HTTP worker threads. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3.

