Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged user
-
DeliveryCraft Get Template Config request with nonstandard method case
-
ExploitAuthorization before-filter fails to match and is bypassed
-
ExecutionServer returns template config without view permission
-
ImpactRead pipeline template configuration
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a valid authenticated GoCD account at a lower privilege level that lacks view permission on the target pipeline template (PR:L), against GoCD versions 18.7.0 through before 26.1.0. The attacker sends a request to the Get Template Config API using nonstandard HTTP method capitalization (e.g. 'Get' rather than 'GET') to evade the case-sensitive authorization before-filter. Exploitation is fully blocked in deployments whose reverse proxy normalizes or rejects non-uppercase HTTP methods, and impact is limited to reading template configuration - data-modifying API operations are not affected and secure variables remain encrypted. |
| Impact | This is a genuine but low-severity broken-authorization issue, not a high-CVSS-low-real-risk inflation case - the vendor 4.0 score of 5.3 is appropriately modest and matches the impact. All signals point the same direction: the CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:L, VI:N/VA:N) confirms network-reachable, low-complexity, but requires an already-authenticated low-privileged account and yields only limited confidentiality loss (read access to pipeline template configuration). No EPSS score, KEV listing, POC, or SSVC decision data was provided in the input - absence of these is expected for a niche OSS CI/CD product and is not itself a red flag. No public exploit identified at time of analysis. The commit diff (614d694c) independently confirms the root cause: authorization before-filters were selected via case-sensitive HTTP method comparison (Set.of("PUT","POST","PATCH").contains(method.toUpperCase()) and Set.of(allowedMethods).contains(request.requestMethod())), so a request with nonstandard capitalization slipped past the filter. Two mitigating factors materially lower real-world risk: exploitation requires a valid authenticated account (PR:L) and is entirely defeated by any reverse proxy that rejects non-uppercase HTTP methods. Net: patch during a normal cycle rather than emergency, prioritize higher for multi-tenant GoCD instances with many low-trust users. |
| Exploit ScenarioDerived | A low-privileged authenticated GoCD user who lacks view permission on a pipeline template issues a request to the Get Template Config API using nonstandard HTTP method capitalization (e.g. 'Get' instead of 'GET'). Because the authorization before-filter matches methods case-sensitively, the check is skipped and the server returns the template's configuration. No public exploit code is identified; given the trivial nature of the trick (altering method case), it is low-complexity to reproduce for anyone with account access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Authorization bypass in GoCD versions 18.7.0 through before 26.1.0 lets an authenticated user with a lower-privileged account read a pipeline template's configuration without the required view permission. The Get Template Config API selects its authorization filter through a case-sensitive comparison of the HTTP method name, so a request sent with nonstandard capitalization (for example 'Get' instead of 'GET') slips past the permission check; per the assessed CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N) exploitation requires only a valid low-privilege account and exposes read-only configuration data, with no modification of data and no exposure of encrypted secure variables. No public exploit identified at time of analysis; the vendor-released fix is GoCD 26.1.0, and deployments whose reverse proxy rejects or normalizes non-uppercase HTTP methods are not exposed.
RemediationAI
Vendor-released patch: 26.1.0 - upgrade GoCD server to 26.1.0 or later following https://github.com/gocd/gocd/releases/tag/26.1.0 and the advisory GHSA-9jfm-4f6v-79wh. If an immediate upgrade is not possible, configure the fronting reverse proxy to reject or normalize non-uppercase HTTP method names - for example, in nginx map $request_method and return 400 for anything outside the standard uppercase verbs - because the bypass only succeeds when an oddly-cased method reaches GoCD; the trade-off is that clients or scripts that intentionally send lowercase methods will begin receiving errors. Do not rely on network segmentation alone, since the attacker is already an authenticated GoCD user; additionally review proxy and GoCD access logs for requests with mixed-case methods targeting the template-config API endpoints. The defect only yields read access to pipeline template configuration and does not affect write APIs or encrypted secure variables, so compensating controls can be prioritized accordingly.
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
GoCD is a Java-based continuous delivery server built on the Spark micro-framework. In the affected versions, the ApiController helper 'onlyOn(Filter, String... allowedMethods)' compared 'request.requestMethod()' case-sensitively against literal method strings, and the authorization before-filters on the Get Template Config API were registered with 'GET' as the allowed method. Spark's router still dispatched the matching handler for a differently-cased method such as 'Get' or 'get', but the case-sensitive string comparison failed to match, so the view-permission filter was skipped. The root cause class is CWE-863 (Incorrect Authorization). The upstream fix in commit 614d694c6d9d8714517db8f9f1581cc1c140506a replaces the string sets with 'EnumSet<HttpMethod>' and uses case-insensitive matching ('equalsIgnoreCase' / lowercased enum lookup) so filters apply regardless of method casing across the affected controllers (notification filters, pipeline groups, template config, and others). Impact is bounded to reading template configuration: data-modifying API operations use PUT/POST/PATCH, are separately guarded by content-type verification, and are not bypassable in the same way; secure variables remain encrypted.
Know when Gocd 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:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable API with a trivial method-case trick (AC:L) but requires an authenticated low-privileged account (PR:L); yields only limited config read (C:L), no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
GoCD is a continuous deliver server. From 18.7.0 until 26.1.0, the Get Template Config API compares HTTP method names case-sensitively when selecting authorization filters. A lower-privileged authenticated user can send a request with nonstandard HTTP method capitalization to retrieve a pipeline template by name without the required view permission and read its configuration. API operations that modify data are not affected, secure variables remain encrypted, and deployments whose reverse proxy rejects non-uppercase HTTP methods are not affected. This issue is fixed in version 26.1.0.
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
Adding a new pipeline in GoCD server version 21.3.0 has a functionality that could be abused to do an un-intended action
GoCD is a continuous delivery server. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low at
GoCD is a continuous delivery server. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, low at
In GoCD, versions 19.6.0 to 21.1.0 are vulnerable to Cross-Site Request Forgery due to missing CSRF protection at the `/
Stored cross-site scripting in GoCD's Compare Pipeline page affects versions 18.3.0 through 25.x and allows an attacker
Stored cross-site scripting in GoCD (versions 13.3.0 through 26.1.0) allows an authenticated user who holds write access
GoCD is an open source a continuous delivery server. Rated medium severity (CVSS 6.8), this vulnerability is remotely ex
GoCD is a continuous delivery server. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, low
GoCD is a continuous delivery server. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, low
GoCD is a continuous delivery server. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no a
GoCD is a continuous delivery server. Rated medium severity (CVSS 6.1), this vulnerability is remotely exploitable, no a
GoCD is a continuous delivery server. Rated medium severity (CVSS 5.9), this vulnerability is remotely exploitable, no a
EUVD-2026-83951
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB