CVE-2026-49826: Github.com/concourse/concourse Concourse Login Flow Has An Vulnerability

LOW
Advisory Identifier: GHSA-8w27-c4vc-88q9
CWE-601
Published
Advisory Summary

CVE-2026-49826 is a LOW concourse login flow has an vulnerability (CWE-601: URL Redirection to Untrusted Site ('Open Redirect')) affecting Github.com/concourse/concourse libraries in the Go ecosystem. The issue involves concourse login flow has an open redirect issue. Remediation is available by upgrading affected packages to version 1.6.1-0.20260526150512-ac60be5f0435.

CVE-2026-49826 at a Glance

CVE Identifier CVE-2026-49826
GHSA Identifier GHSA-8w27-c4vc-88q9
Severity LOW
CVSS v3.1 Base Score N/A
CWE Classification CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
Affected Product Github.com/concourse/concourse
Package Ecosystem Go
Published Date
Last Updated

How to Fix CVE-2026-49826

To remediate this vulnerability, upgrade all affected Github.com/concourse/concourse dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

github.com/concourse/concourse fixed: 1.6.1-0.20260526150512-ac60be5f0435
Upgrade github.com/concourse/concourse to 1.6.1-0.20260526150512-ac60be5f0435
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

inspect dependencies for github.com/concourse/concourse

How to Check if You Are Affected

To determine whether your application is affected by CVE-2026-49826, inspect your project dependencies for Github.com/concourse/concourse:

inspect dependencies for github.com/concourse/concourse

Analyze the terminal output to locate any version of Github.com/concourse/concourse in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.6.1-0.20260526150512-ac60be5f0435), your application is affected.

Note: Verify declared build manifests and deployed runtime container environments.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-601: URL Redirection to Untrusted Site ('Open Redirect'), where the web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect. In Github.com/concourse/concourse, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

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

CVE-2026-49826 Affected Github.com/concourse/concourse Versions

1 component(s)
Fixed Versions:
1.6.1-0.20260526150512-ac60be5f0435
Product / Package Ecosystem Affected Versions Fixed Version
github.com/concourse/concourse
Go
< 1.6.1-0.20260526150512-ac60be5f0435
1.6.1-0.20260526150512-ac60be5f0435

References

Frequently Asked Questions

What is CVE-2026-49826?
CVE-2026-49826 is a security vulnerability in Github.com/concourse/concourse involving Concourse login flow has an open redirect issue under CWE-601: URL Redirection to Untrusted Site ('Open Redirect').
Which Github.com/concourse/concourse versions are affected?
Affected versions include releases prior to 1.6.1-0.20260526150512-ac60be5f0435 across affected packages: github.com/concourse/concourse.
What version fixes CVE-2026-49826?
Upgrading to 1.6.1-0.20260526150512-ac60be5f0435 (or the latest patched release for your respective branch) resolves the vulnerability.
Is github.com/concourse/concourse affected?
Yes, github.com/concourse/concourse is affected in releases prior to 1.6.1-0.20260526150512-ac60be5f0435. Upgrade your dependency to 1.6.1-0.20260526150512-ac60be5f0435 or later.
What CWE is associated with CVE-2026-49826?
CVE-2026-49826 is classified under CWE-601: URL Redirection to Untrusted Site ('Open Redirect') (The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect.).
How can I check Go dependencies for CVE-2026-49826?
Run the dependency tree command: 'inspect dependencies for github.com/concourse/concourse'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-8w27-c4vc-88q9",
  "modified" : "2026-07-01T19:01:16Z",
  "published" : "2026-07-01T19:01:16Z",
  "aliases" : [ "CVE-2026-49826" ],
  "summary" : "Concourse login flow has an open redirect issue",
  "details" : "### Impact\n\nAn 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.\n\n### Patches\n\nThis has been fixed in 8.2.3\n\n### Workarounds\n\nNone.\n\n### Exploit\n\nVulnerable code was in: https://github.com/concourse/concourse/blob/ea7b812e3a88fdd070f0faece874e8a2d4fbb31c/skymarshal/skyserver/skyserver.go#L162-L170\n\nThe 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.\n\nIn 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`.\n\nOn 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.",
  "severity" : [ {
    "type" : "CVSS_V4",
    "score" : "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:N/VA:N/SC:N/SI:N/SA:N"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "Go",
      "name" : "github.com/concourse/concourse"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.6.1-0.20260526150512-ac60be5f0435"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/concourse/concourse/security/advisories/GHSA-8w27-c4vc-88q9"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/concourse/concourse/commit/ac60be5f0435b6592f5a4fcc089050d72ad2452c"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/concourse/concourse"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/concourse/concourse/releases/tag/v8.2.3"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-601" ],
    "severity" : "LOW",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-07-01T19:01:16Z",
    "nvd_published_at" : null
  }
}