CVE Catalog

CVE-2026-87721

HighCVSS 8.7
Published: Translated: NVD NIST

Summary

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. The issue stems from syntactic predicates recursing without memoization prior to capability or visibility checks, and worker threads not aborting when the client disconnects. This issue is fixed in versions 3.12.10, 3.13.9, and 3.14.3.

Risk Assessment

A small number of requests (e.g., 25 matching the default httpd.maxThreads) can permanently pin all HTTP worker threads, causing Gerrit unavailability and requiring a server restart. This may paralyze the code review process and halt development teams' work.

Recommendation

Upgrade Gerrit Code Review to version 3.12.10, 3.13.9, or 3.14.3. Until then, consider restricting access to query endpoints and monitoring the number and complexity of incoming queries.

Other vulnerabilities in Gerrit Code Review

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS