Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as pipeline-group admin
-
DeliveryCraft material_test API request with out-of-scope pipeline/group context
-
ExploitServer resolves foreign material config and secrets
-
ExecutionTest Connection uses unauthorized credentials
-
ImpactExfiltrate/abuse cross-group or global secrets
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated GoCD user holding pipeline-group administrator (or config-repo administrator) privileges on a server running 16.1.0 through 26.0.x; the attacker calls /go/api/admin/internal/material_test or /go/api/internal/config_repos/*/material_test and supplies an arbitrary existing pipeline and pipeline-group name outside their authorized scope. Impact is amplified on GoCD 20.6.0 and later, where the test context resolves external secrets managed by secret-management plugins, including global reusable secrets with separate permissions. Limiting factors: exploitation is meaningful only in multi-tenant deployments where distinct teams/groups must be isolated - in a single-team install where all admins are mutually trusted there is no real privilege boundary crossed; PR:H means no anonymous or low-privilege user can exploit it, and no user interaction is required. |
| Impact | This is a moderate-severity broken-authorization (IDOR) flaw, not a high-priority emergency. The vendor CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N, base 4.9) is internally consistent with the description: network-reachable, low attack complexity, but gated behind PR:H because the attacker must already be an authenticated GoCD pipeline-group administrator. The confidentiality-only impact (C:H, I:N, A:N) correctly reflects that the flaw discloses/abuses credentials and secrets from materials outside the attacker's authorized scope but does not directly modify or deny service. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The realistic risk is therefore an insider/privilege-boundary problem: a semi-trusted pipeline-group admin escalating access to secrets belonging to other groups or global reusable secrets (on 20.6.0+). CWE-639 is the accurate weakness; the input Tag 'Authentication Bypass' is misleading because authentication is NOT bypassed - a valid privileged session is required and only authorization scoping is violated. This should be prioritized in multi-tenant GoCD deployments where distinct teams share one server but must not share secrets; it is low priority in single-team installations where all admins are already mutually trusted. |
| Exploit ScenarioDerived | A pipeline-group administrator in a shared multi-tenant GoCD server crafts a POST to /go/api/admin/internal/material_test (or the config-repo variant), supplying an existing pipeline/pipeline-group name belonging to a different team along with an SCM material config. GoCD performs the Test Connection using the out-of-scope context, and on GoCD 20.6.0+ resolves external secrets - including global reusable secrets - allowing the attacker to leverage credentials they were never authorized to use. No public exploit code is identified, but the attack is a single authenticated API request with low complexity. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
GoCD continuous delivery servers running 16.1.0 through 26.0.x allow a pipeline-group administrator to test SCM material connections belonging to pipeline groups and configuration repositories outside their authorized scope, causing disclosure of the credentials attached to those materials. Because the affected endpoints (/go/api/admin/internal/material_test and /go/api/internal/config_repos/*/material_test) accept an arbitrary pipeline and pipeline-group context, an attacker can also trigger resolution of external secrets managed by secret-management plugins on GoCD 20.6.0 and later, including global reusable secrets that carry separate permissions. Exploitation requires authenticated access with pipeline-group (or config-repo) administrator privileges (CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N, 4.9), so this is a moderate-severity broken-authorization flaw rather than an emergency; no public exploit code was identified at time of analysis, and the issue is fixed in GoCD 26.1.0.
RemediationAI
Vendor-released patch: upgrade to GoCD 26.1.0, which is the fixed version (release notes: https://github.com/gocd/gocd/releases/tag/26.1.0 and https://www.gocd.org/releases/#26-1-0; advisory: https://github.com/gocd/gocd/security/advisories/GHSA-4557-94j8-5p66; upstream fix commit: https://github.com/gocd/gocd/commit/f0dda0fb8af4cff5e2f4bf52b753fb41a7ec8918). Upgrading is the only complete fix because the vulnerable context handling was removed from the shared AbstractMaterialTestController. Where an immediate upgrade is not possible, compensating controls must be weighed against their trade-offs: because exploitation requires pipeline-group administrator rights (PR:H), audit and reduce the number of users holding pipeline-group or config-repo administrator roles, and avoid granting those roles in tenants that require strict isolation from other teams; rotate any SCM credentials and plugin-managed secrets (particularly global reusable secrets) that are reachable from pipeline groups an administrator could name, since exposure through Test Connection is silent and leaves no artifact; restrict network access to /go/api/admin/internal/material_test and /go/api/internal/config_repos/*/material_test (via a reverse proxy or API gateway allow-list limited to trusted networks) at the cost of breaking legitimate administrative Test Connection workflows; and, on GoCD 20.6.0 and later, move away from global reusable secrets toward per-group secrets so that resolving one group's context cannot yield credentials governed by separate permissions. Note that disabling or scoping down secret-management plugin integration degrades configuration reuse but directly removes the amplified 20.6.0+ exposure path.
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 whose configuration model separates pipelines into pipeline groups, each with its own administrators and its own set of materials (SCM materials such as Git, SVN, Mercurial, Perforce, and TFS connections, each carrying credentials). The vulnerable code lives in the shared controller class com.thoughtworks.go.api.abstractmaterialtest.AbstractMaterialTestController, which backs the "Test Connection" API used to validate a material's SCM configuration. Before the fix, that controller read pipeline_name and pipeline_group fields directly from the JSON request body, used them to locate an existing PipelineConfig, ran config parameter (param) expansion against it, converted the material config to a live Material, and then called resolveSecrets(pipelineGroupName, material) - resolving plugin-managed secrets in the context of the named pipeline group before performing the connection check. Nothing tied the supplied group name to the caller's own authorization scope, an instance of CWE-639 (Authorization Bypass Through User-Controlled Key): the pipeline/pipeline-group parameters act as a user-controlled key that selects which context's credentials are used. The upstream fix (commit f0dda0fb8af4cff5e2f4bf52b753fb41a7ec8918) removes param expansion and secret resolution from the base controller and instead introduces an abstract resolveTestMaterial hook, documented as assuming the caller has already validated that the user may access or edit the pipeline/materials in the relevant context, leaving the actual material resolution to subclasses that can enforce scope. The disclosure is amplified on GoCD 20.6.0 and later because the test context also resolves external secrets supplied by secret-management plugins, including global reusable secrets whose read permissions are governed separately from the pipeline group.
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:H/UI:N/S:U/C:H/I:N/A:N
Remote API reachable with low complexity, but requires pipeline-group admin privileges (PR:H); impact is confidentiality-only via exposed cross-group credentials/secrets, 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 16.1.0 until 26.1.0, the internal material connection test APIs at /go/api/admin/internal/material_test and /go/api/internal/config_repos/*/material_test accept an arbitrary existing pipeline and pipeline-group context without sufficient validation. A pipeline group administrator can invoke Test Connection for source control materials outside the administrator's authorized pipeline group or configuration repository and potentially use credentials from those materials. For GoCD 20.6.0 and later, the test context can also resolve external secrets managed by secret-management plugins, including global reusable secrets with separate permissions. 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
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-83952
NVD
CVE.org
EPSS
GitHub
VulDB
Exploit-DB