Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach Gerrit query endpoint unauthenticated
-
DeliverySend crafted deeply-nested-parentheses search query
-
ExploitTrigger unmemoized ANTLR conditionBase recursion
-
ExecutionPin all HTTP worker threads
-
ImpactPersistent DoS until server restart
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation targets Gerrit's query-evaluation endpoints specifically: /changes/?q=, /accounts/?q=, /groups/?query=, /projects/?query=, /Documentation/?q=, /changes/{id}/query?expression=, or the SSH 'gerrit query' command. The trigger is a search query containing deeply nested parentheses that forces the ANTLR 3 QueryParser (Query.g) to recurse through conditionOr/conditionAnd via conditionBase without memoization before capability or visibility checks. No authentication is required in the DEFAULT configuration where anonymous read access is enabled (PR:N); the primary LIMITING factor is that if an operator has disabled anonymous read, a valid authenticated (but unprivileged) account is needed. Amplification depends on httpd.maxThreads - about 25 concurrent requests match the default and are enough to starve the pool; the lack of thread abort on client disconnect makes the resulting exhaustion persistent until a manual restart. |
| Impact | This is a genuine operational priority for Gerrit operators, not a high-CVSS-but-low-real-risk item. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N, VA:H, base 8.7) aligns tightly with the description: fully remote, low complexity, no privileges, no user interaction, and a High availability impact with no confidentiality/integrity effect - a pure availability attack. The description makes the impact concrete and severe: because the ANTLR 3 QueryParser recurses through conditionBase without memoization BEFORE capability/visibility checks, and worker threads never abort on client disconnect, roughly 25 crafted requests (matching the default httpd.maxThreads) can permanently pin the entire HTTP worker pool and require a server restart - a persistent, low-effort DoS rather than a transient slowdown. There is NO EPSS score, NO CISA KEV listing, and NO public exploit code in the provided data, so exploitation status is 'no public exploit identified at time of analysis'; the absence of these signals does not lower the intrinsic exploitability, which is trivial once the technique is understood. One important conditional: the CVSS PR:N assumes the default posture where anonymous read access is enabled - the description explicitly notes that if anonymous read is disabled, an authenticated (but otherwise unprivileged) user is required, which modestly limits exposure for hardened instances. Overall: real priority for internet-facing or large-org Gerrit deployments; patch promptly. |
| Exploit ScenarioDerived | An attacker locates an internet-reachable Gerrit instance with anonymous read enabled (the default) and sends a handful of crafted search queries containing deeply nested parentheses to a query endpoint such as /changes/?q=. Each request drives unbounded, unmemoized ANTLR recursion on a worker thread that never aborts even after the client disconnects, so about 25 such requests exhaust the default httpd.maxThreads pool and leave the server unresponsive until an administrator restarts it. No public exploit code is identified at time of analysis, but the technique requires no authentication or special tooling in the default configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Uncontrolled resource consumption 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 unauthenticated remote attackers to cause a persistent denial of service by sending search queries containing deeply nested parentheses to query evaluation endpoints such as /changes/?q=, /accounts/?q=, or the SSH 'gerrit query' command. A small number of requests - roughly 25 to match the default httpd.maxThreads - can permanently pin all HTTP worker threads because the ANTLR 3 query parser recurses without memoization before capability or visibility checks and worker threads do not abort when clients disconnect, requiring a server restart. This is assessed as a genuine operational priority for Gerrit operators; no public exploit code or active exploitation has been identified at time of analysis.
RemediationAI
Vendor-released patches address this issue: upgrade to Gerrit Code Review 3.12.10, 3.13.9, or 3.14.3 (see https://issues.gerritcodereview.com/issues/541287630). If an immediate upgrade is not possible, compensating controls can reduce risk but have trade-offs: restrict the affected query endpoints (/changes/?q=, /accounts/?q=, /groups/?query=, /projects/?query=, /Documentation/?q=, /changes/{id}/query?expression=, and the SSH 'gerrit query' command) to trusted networks or authenticated users via a reverse proxy or firewall - though authenticated unprivileged users can still trigger the issue, so this only limits exposure. Rejecting or sanitizing queries with excessive parenthesis nesting depth at a front-end proxy can block the malformed input, but may break legitimate complex search expressions and requires careful tuning. Increasing httpd.maxThreads raises the number of requests needed to starve the pool but does not eliminate the vulnerability and increases resource consumption. Because worker threads do not abort on client disconnect, ordinary HTTP timeouts will not free pinned threads; a manual restart of Gerrit is required to recover from an exhaustion event.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability resides in the ANTLR 3-generated search query parser (QueryParser generated from Query.g) that Gerrit Code Review uses to evaluate search expressions. Syntactic predicates in the conditionOr and conditionAnd rules recurse through conditionBase without memoization, and this recursion occurs before any capability or visibility checks are applied. Consequently, a query containing deeply nested parentheses triggers uncontrolled recursion and CPU exhaustion (CWE-400 / CWE-407) within the HTTP worker thread. Because the worker thread does not abort when the client disconnects, the exhaustion is persistent and not self-healing; the default httpd.maxThreads value of approximately 25 means that about 25 concurrent malicious queries are sufficient to starve the entire thread pool. The CPE cpe:2.3:a:gerrit:gerrit confirms the affected product family, and the defect is tracked in the Gerrit issue tracker (issue 541287630).
Know when Gerrit gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Remote, low-complexity, no auth against default anonymous-read config (PR:N), no user interaction; impact is availability-only (A:H) with no confidentiality/integrity effect and no scope change.
Primary rating from Vendor (Google).
CVSS VectorVendor: Google
Lifecycle Timeline
2DescriptionCVE.org
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.
Articles & Coverage 1
Executive ViewAI
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 are affected by a persistent denial-of-service vulnerability that can pin all HTTP worker threads and require a server restart, disrupting code review workflows across development teams. No public exploit has been identified at time of analysis, and no vendor-released patch is currently available. Because Gerrit is central to code collaboration and release pipelines, unplanned outages can delay critical software delivery and reduce engineering productivity.
No vendor-released patch identified at time of analysis. Interim mitigations include restricting access to /changes/?q=, /accounts/?q=, and SSH 'gerrit query' to trusted users or networks, implementing rate limiting or WAF rules to block deeply nested parentheses, monitoring for thread exhaustion, and restarting the Gerrit server if worker threads become pinned.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
CPU starvation and JVM heap exhaustion in Gerrit Code Review (versions 2.1.6 through 3.12.9, 3.13.0 through 3.13.8, and
Gerrit Code Review 2.16.0-3.12.9, 3.13.0-3.13.8, and 3.14.0-3.14.2 mishandle project-name normalization, allowing an aut
Any git operation is passed through Jetty and a session is created. Rated high severity (CVSS 7.5), this vulnerability i
Incorrect authorization in Gerrit's 'submitted together' feature (versions 2.12 and later) allows an authenticated attac
An information leak vulnerability exists in Gerrit versions prior to 2.14.22, 2.15.21, 2.16.25, 3.0.15, 3.1.10, 3.2.5 wh
An information leak vulnerability exists in Gerrit versions prior to 2.15.21, 2.16.25, 3.0.15, 3.1.10, 3.2.5 where a mis
EUVD-2026-86477
GHSA-q3rp-qmhw-57f7
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB