{"answers":{"affected":"","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-87720 exists.","fix":"No fix has been published for CVE-2026-87720 yet. Limit exposure of the affected software until one is available.","what":"CVE-2026-87720 is a high-severity missing authorization vulnerability in Gerrit, published on 24 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-87720 and fix it if it is affected.\n\nWhat it is: CVE-2026-87720 is a high-severity missing authorization vulnerability in Gerrit, published on 24 Sep 2026. Any signed-in user can exploit it over the network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-87720 exists.\n\nAffected product: Gerrit. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-87720/ (Markdown: https://insights.sbomify.com/CVE-2026-87720/index.md)","id":"CVE-2026-87720","markdown":"https://insights.sbomify.com/CVE-2026-87720/index.md","name":"CVE-2026-87720","record":{"aliases":["GHSA-c8r3-7jgc-cm9w"],"analysis":{"component_type":"server_software","fix_type":"upgrade","impacts":["data_read","privilege_escalation"],"network_reachable":"yes","non_default_config":false,"product_category":"Gerrit Code Review","requires_auth":"low_privilege","summary":"Authenticated users can bypass authorization checks to read private repository content and restore revoked administrative privileges via cache eviction flaws.","user_interaction":"not_required","vuln_class":"missing_authorization"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Google","cpe":[],"cvss":{"score":7.6,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-863","name":"Incorrect Authorization"},{"id":"CWE-706","name":"Use of Incorrectly-Resolved Name or Reference"},{"id":"CWE-613","name":"DEPRECATED: Insufficient Session Expiration"}],"description":"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.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":null,"headline":"Incorrect Authorization via Stale ProjectCache Eviction and Repeated .git Suffixes in Gerrit Code Review","id":"CVE-2026-87720","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"missing_authorization","year":"2026"},"n_packages":0,"n_references":1,"next":{"headline":"Denial of Service via Exponential Backtracking in ANTLR Search Query Parser in Gerrit Code Review","id":"CVE-2026-87721"},"packages":[],"prev":{"headline":"Deserialization of Untrusted Data in GitLab","id":"CVE-2026-87719"},"products":["Gerrit"],"published":"2026-09-24","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"total"},"state":"PUBLISHED","updated":"2026-09-25","vendors":["Gerrit"]},"summary":"Authenticated users can bypass authorization checks to read private repository content and restore revoked administrative privileges via cache eviction flaws.","url":"https://insights.sbomify.com/CVE-2026-87720/"}