Traefik vulnerable to Open Redirect via handling of X-Forwarded-Prefix headerGHSA-6qq8-5wq3-86rp
MEDIUMFix: containous/traefik#7109GHSA-6qq8-5wq3-86rp is a medium-severity (CVSS 6.1) Open Redirect vulnerability in github.com/traefik/traefik. A fix is available for github.com/traefik/traefik — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
GHSA-6qq8-5wq3-86rp by exploitation likelihood (EPSS) against impact (CVSS). Outside the shaded patch-first corner.
Where this sits among everything scored
Of 385,738 CVEs with a current EPSS score, this one falls in the < 10% band (highlighted). Counts from FIRST.org, log-scaled.
Real-World Exposure
github.com/traefik/traefik🐹github.com/traefik/traefik/v2🐹github.com/containous/traefik🐹github.com/containous/traefik/v2🐹github.com/traefik/traefik/v2🐹github.com/containous/traefik/v2🐹github.com/traefik/traefik/api🐹github.com/traefik/traefik/v2/pkg/api+4 moreReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
There exists a potential open redirect vulnerability in Traefik's handling of the X-Forwarded-Prefix header. Active Exploitation of this issue is unlikely as it would require active header injection, however the Traefik team addressed this issue nonetheless to prevent abuse in e.g. cache poisoning scenarios.
Details
The Traefik API dashboard component doesn't validate that the value of the header X-Forwarded-Prefix is a site relative path and will redirect to any header provided URI.
e.g.
$ curl --header 'Host:traefik.localhost' --header 'X-Forwarded-Prefix:https://example.org' 'http://localhost:8081'
<a href="https://example.org/dashboard/">Found</a>.`
Impact
A successful exploitation of an open redirect can be used to entice victims to disclose sensitive information.
Workarounds
By using the headers middleware, the request header X-Forwarded-Prefix value can be overridden by the value . (dot)
- https://docs.traefik.io/v2.2/middlewares/headers/#customrequestheaders
- https://docs.traefik.io/v1.7/basics/#custom-headers
For more information
If you have any questions or comments about this advisory, open an issue in Traefik.
Credit
This issue was found by the GitHub Application Security Team and reported on behalf of the GHAS by the GitHub Security Lab Team.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/traefik/traefik | ≥ 1.5.0-rc5&&< 1.7.26 | 1.7.26go get github.com/traefik/traefik@v1.7.26 |
| 🐹Go | github.com/traefik/traefik/v2 | all versions | 2.3.0-rc6go get github.com/traefik/traefik/v2@v2.3.0-rc6 |
| 🐹Go | github.com/containous/traefik | ≥ 1.5.0-rc5&&< 1.7.26 | 1.7.26go get github.com/containous/traefik@v1.7.26 |
| 🐹Go | github.com/containous/traefik/v2 | all versions | 2.2.8go get github.com/containous/traefik/v2@v2.2.8 |
| 🐹Go | github.com/traefik/traefik/v2 | ≥ 2.3.0-rc1&&< 2.3.0-rc6 | 2.3.0-rc6go get github.com/traefik/traefik/v2@v2.3.0-rc6 |
| 🐹Go | github.com/containous/traefik/v2 | ≥ 2.3.0-rc1&&< 2.3.0-rc3 | 2.3.0-rc3go get github.com/containous/traefik/v2@v2.3.0-rc3 |
Affected Products
traefiktraefikDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/traefik/traefik, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/traefik/traefik to 1.7.26 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-6qq8-5wq3-86rp is resolved across your whole dependency graph.
Workarounds
Stop reflecting attacker-controlled destinations: resolve every redirect target against an allowlist of paths or hosts you own, prefer a server-side key over a full URL in the request, and reject absolute URLs entirely where the flow only ever needs a relative one.
How to detect GHSA-6qq8-5wq3-86rp
A community-maintained Nuclei template exists for this CVE. You can scan for it directly:
nuclei -id ghsa-6qq8-5wq3-86rp -u https://target- Template
- Traefik - Open Redirect
- Severity
- medium
- Impact
- An attacker can manipulate the redirect URL and trick users into visiting malicious websites.
- Remediation
- Apply the vendor-provided patch or upgrade to a non-vulnerable version of Traefik.
Template by ProjectDiscovery nuclei-templates (dwisiswant0), MIT licensed. View the full template. Scan only systems you are authorised to test.
Frequently Asked Questions
Is GHSA-6qq8-5wq3-86rp in your dependencies?
Find it across Go, including transitive dependencies.