Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privileged GoCD user
-
ExploitRequest internal pipeline-structure API with additional info
-
ExecutionReceive full username and role-name roster
-
ImpactEnumerate targets for follow-on attacks
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 an authenticated GoCD account with lower-than-administrator privileges (PR:L) on a security-enabled GoCD server running an affected version (20.2.0 up to but not including 26.1.0). The attacker queries the internal pipeline-structure autocompletion endpoint (used when editing pipeline, template, environment, or user-preference config), which pre-fix returned userService.allUsernames() and allRoleNames() to any authenticated caller regardless of admin role. Limiting factors: valid credentials are required (not unauthenticated), impact is confined to disclosure of usernames and role names only - no role-to-user mapping, no data modification, and no read of other configuration secrets. |
| Impact | This is a low-severity information-disclosure flaw, and every available signal agrees on that. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N = 4.3) shows a network-reachable but authenticated (PR:L) issue with confidentiality-only impact and no integrity or availability effect - consistent with the description, which explicitly states the endpoint cannot modify data and does not reveal which roles map to which users. No EPSS score, no CISA KEV listing, and no public exploit code are provided, so there is no evidence of active or automated exploitation; this is a recon-enabler, not a priority patch. The commit diff confirms the root cause (CWE-863 improper authorization): the internal pipeline-structure controller unconditionally called userService.allUsernames()/allRoleNames(), and the fix gates these behind apiAuthorizationHelper.isPipelineGroupAdminOrTemplateAdmin(), returning only the caller's own name and an empty role set otherwise. No signals conflict. The realistic risk is limited: it merely hands an already-authenticated lower-privileged user a roster of usernames and role names to aid follow-on social-engineering or credential-guessing attacks. |
| Exploit ScenarioDerived | A low-privileged but authenticated GoCD user (any regular pipeline user) calls the internal pipeline-structure autocompletion API with the additional-info parameter and receives the full list of configured usernames and role names. The attacker uses this roster to target specific accounts - e.g., password-guessing admin usernames or phishing named users - even though the response does not disclose role-to-user assignments. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 23, 2026
GoCD versions 20.2.0 through 26.0.x disclose the complete list of configured usernames and role names to any authenticated user through the internal pipeline-structure autocompletion API, even when that user has no administrator privileges. The endpoint is reached remotely over HTTP (AV:N) and requires only a valid low-privileged account (PR:L), so a regular GoCD user can enumerate tenant user and role identifiers to support follow-on credential-stuffing, phishing, or targeted attacks, though the response never maps users to roles and cannot modify any data. No public exploit code and no confirmed active exploitation were identified at time of analysis, and the disclosure is limited to names, which is why the independently assessed severity remains low. GoCD 26.1.0 contains the vendor fix.
RemediationAI
Upgrade GoCD server to 26.1.0 or later - this is the vendor-released patch and the exact fixed version documented in GHSA-57pf-j652-c3c9 and the 26.1.0 release notes (https://github.com/gocd/gocd/releases/tag/26.1.0, https://www.gocd.org/releases/#26-1-0); the underlying change is commit c93d9e7b32b64257725a7d1c6f148fb571c86c7e, which restricts the autocompletion response to the caller's own username and an empty role set unless the caller is a pipeline-group or template administrator. Where an immediate upgrade is not possible, the practical compensating controls are: block external network access to the internal pipeline-structure and internal pipeline-groups API paths at the reverse proxy or load balancer so only trusted administrators or the GoCD UI origin can reach them - the trade-off is that legitimate config-editor autocompletion of users and roles will fail for those callers; and reduce the authenticated attack surface by auditing and removing unnecessary low-privileged GoCD accounts and disabling anonymous/unauthenticated access, since the flaw requires a valid PR:L session. Because the exposure is limited to username and role-name enumeration with no data modification and no user-to-role mapping, network segmentation plus account hygiene is a reasonable temporary posture, but upgrading to 26.1.0 remains the only complete fix.
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 flaw is a broken authorization control (CWE-863) in GoCD's Java/Spark-based internal REST API rather than a memory-safety or injection defect. The affected endpoint is served by InternalPipelineStructureControllerV1 (module api-internal-pipeline-structure-v1) and is used by the GoCD web UI to autocomplete configuration while an operator edits pipelines, templates, environments, and user preferences. Before the fix, its index handler unconditionally called userService.allUsernames() and userService.allRoleNames() when the request included the with_additional_info flag, without verifying that the caller held an administrative role; the surrounding route authorization only required a generic 'operate' permission on pipeline groups (viewableOrOperatableGroupsForIncludingConfigRepos). The upstream commit c93d9e7b32b64257725a7d1c6f148fb571c86c7e adds an explicit apiAuthorizationHelper.isPipelineGroupAdminOrTemplateAdmin() check and falls back to returning only the caller's own username (Set.of(currentUsernameString())) and an empty role set for everyone else. The same commit tightens the sibling controller InternalPipelineGroupsControllerV1 by replacing viewableOrOperatableGroupsForIncludingConfigRepos with the stricter operableGroupsForIncludingConfigRepos, indicating a deliberate authorization-model hardening of GoCD's internal configuration APIs. The CPE entry cpe:2.3:a:gocd:gocd:*:*:*:*:*:*:*:* is unversioned, so version scoping must be taken from the vendor advisory and EUVD data (20.2.0 through versions prior to 26.1.0, EUVD-2026-85517).
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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network-reachable API requiring a low-privileged authenticated account (PR:L), no user interaction, confidentiality-only low impact (username/role enumeration), no integrity or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
GoCD is a continuous deliver server. From 20.2.0 until 26.1.0, the internal pipeline structure API used for autocompletion while editing pipeline, template, environment, and user-preference configuration returns its users-and-roles mode to regular authenticated users without requiring an administrator role. A lower-privileged user can enumerate configured user names and available role names, which can facilitate attacks against those users. The response does not reveal which roles are assigned to each user, and the endpoint cannot modify data. 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-85517
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB