Severity by source
Network-delivered, low-complexity redirect requiring user interaction; scope changes as victim is sent to external attacker domain with phishing potential.
Lifecycle Timeline
1DescriptionCVE.org
Impact
An attacker is able to craft and send a user a URL that will redirect the user from the Concourse web server to any other site. This could be used in a phishing attack to steal user's credentials.
Patches
This has been fixed in 8.2.3
Workarounds
None.
Exploit
Vulnerable code was in: https://github.com/concourse/concourse/blob/ea7b812e3a88fdd070f0faece874e8a2d4fbb31c/skymarshal/skyserver/skyserver.go#L162-L170
The issue stems from the underlying processing logic of Go's url package. Normally, ParseRequestURI() will eventually reach an internal url.setPath() function, where the URL will be decoded. However, if RawPath is not empty and validEncoded(RawPath) is true, and the decoded result equals Path, then return RawPath as is; otherwise, escape Path again, i.e., decode it again.
In other words, if the URL contains dangerous characters that should be escaped, such as backslashes (\), then an extra decoding step will be performed. Therefore, /%2Fexample.com will be parsed as //example.com.
On vulnerable versions of Concourse, add /sky/login?redirect_uri=/%252Fexample.com/\ to your Concourse external URL, login as usual, and you should be redirected to example.com instead of your Concourse web server. The redirect happens after the login flow completes. No credentials are leaked.
AnalysisAI
Open redirect in Concourse's web login flow allows a remote unauthenticated attacker to craft a URL that silently redirects an authenticated user to an arbitrary external site upon completing the login process. Concourse versions prior to 8.2.3 are affected via the /sky/login endpoint's redirect_uri parameter. While no credentials are leaked server-side, the post-login redirect to an attacker-controlled site creates a high-fidelity phishing vector targeting CI/CD operators and developers - users who typically hold sensitive pipeline secrets and source-code access. No public exploit identified at time of analysis, though the advisory provides a fully working proof-of-concept URL.
Technical ContextAI
The vulnerability resides in skymarshal/skyserver/skyserver.go (lines 162-170) in the Concourse Go-based web server. The root cause is CWE-601 (URL Redirection to Untrusted Site), triggered by a double-decoding quirk in Go's standard url package. When ParseRequestURI() processes a URL with a non-empty RawPath that passes validEncoded() and whose decoded form equals Path, it returns RawPath as-is - applying an extra decode pass. The attacker submits redirect_uri=/%252Fexample.com/\ (percent-encoded slash %25 → %2F → /), which after double decoding resolves to //example.com, a protocol-relative URL interpreted by the browser as an external host. The affected package is pkg:go/github.com_concourse_concourse.
RemediationAI
Upgrade Concourse to v8.2.3, which contains the fix at commit ac60be5f0435b6592f5a4fcc089050d72ad2452c addressing the double-decoding issue in the redirect_uri validation logic. The release is available at https://github.com/concourse/concourse/releases/tag/v8.2.3 and the security advisory is at https://github.com/concourse/concourse/security/advisories/GHSA-8w27-c4vc-88q9. The vendor confirms no workarounds are available, as the flaw is in core login-flow redirect handling. As a compensating control prior to patching, operators can restrict external access to the Concourse web UI (e.g., place it behind a VPN or IP allowlist) to limit the population of users who could receive and act on a crafted phishing URL - though this does not eliminate the vulnerability for internal attackers. User awareness training to scrutinize post-login redirect destinations is a low-friction advisory measure with minimal operational impact.
More in Open Redirect
View allA malicious third-party can give a crafted "ssh://..." URL to an unsuspecting victim, and an attempt to visit the URL ca
GFI Kerio Control versions 9.2.5 through 9.4.5 contain an HTTP response splitting vulnerability in the dest parameter of
PHP through 7.0.8 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect
Multiple open redirect vulnerabilities in Apache Struts 2.0.0 through 2.3.15 allow remote attackers to redirect users to
Open redirect vulnerability in age-verification.php in the Age Verification plugin 0.4 and earlier for WordPress allows
Open redirect vulnerability in Kaseya Virtual System Administrator (VSA) 7.x before 7.0.0.29, 8.x before 8.0.0.18, 9.0 b
Vulnerability in the Oracle Applications Framework component of Oracle E-Business Suite (subcomponent: Popup windows (li
Unspecified vulnerability in the Oracle Application Server Single Sign-On component in Oracle Fusion Middleware 10.1.4.3
Flarum is open source discussion platform software. Rated medium severity (CVSS 6.5), this vulnerability is remotely exp
Open redirect vulnerability in Novius OS 5.0.1 (Elche) allows remote attackers to redirect users to arbitrary web sites
Open redirect vulnerability in the Redirect function in stageshow_redirect.php in the StageShow plugin before 5.0.9 for
Nteract v.0.28.0 was discovered to contain a remote code execution (RCE) vulnerability via the Markdown link. Rated crit
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-58716
GHSA-8w27-c4vc-88q9