Katalog CVE

CVE-2026-87720

WysokieCVSS 7.6
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

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
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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS