Skip to main content

Gerrit Code Review CVE-2026-87721

| EUVDEUVD-2026-86477 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-09-24 Google GHSA-q3rp-qmhw-57f7
8.7
CVSS 4.0 · Vendor: Google
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach Gerrit query endpoint unauthenticated
  2. Delivery
    Send crafted deeply-nested-parentheses search query
  3. Exploit
    Trigger unmemoized ANTLR conditionBase recursion
  4. Execution
    Pin all HTTP worker threads
  5. Impact
    Persistent 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Gerrit 3.13.0 <3.13.9
Gerrit 2.0.19 <3.12.10
Gerrit 3.14.0 <3.14.3

Affected Packages

euvd gerrit fix: 3.12.10, 3.13.9, 3.14.3

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

Vendor (Google) PRIMARY 8.7 HIGH
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
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (Google).

CVSS VectorVendor: Google

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 24, 2026 - 23:18 EUVD
CVE Published
Sep 24, 2026 - 22:02 cve.org
HIGH 8.7

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

Executive ViewAI

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Medium
widely used code-review server in OSS and enterprises, not universal
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy