GitHub Advisoryadvisory · Maven
GHSA-w6rq-6h34-vh7q Cached redirect poisoning via X-Forwarded-Host header
HIGH
Official page ↗
- Aliases
- CVE-2021-29479
- Ecosystem
- Maven
- Packages
- io.ratpack:ratpack-core
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:L
- Weaknesses
- CWE-807
- Reviewed
- 2021-06-30
Affected packages
• Maven io.ratpack:ratpack-core: < 1.9.0 → fixed in 1.9.0
Description
A user supplied `X-Forwarded-Host` header can be used to perform cache poisoning of a cache fronting a Ratpack server if the cache key does not include the `X-Forwarded-Host` header as a cache key.
Users are only vulnerable if they do not configure a custom `PublicAddress` instance. A custom `PublicAddress` can be specified by using ServerConfigBuilder::publicAddress. For versions prior to 1.9.0, by default, Ratpack utilizes an inferring version of `PublicAddress` which is vulnerable.
Impact
This can be used to perform redirect cache poisoning where an attacker can force a cached redirect to redirect to their site instead of the intended redirect location.
Patches
As of Ratpack 1.9.0, two changes have been made that mitigate this vulnerability:
1. The default PublicAddress implementation no longer infers the address from the request context, instead relying on the configured bind host/port
2. Relative redirects issued by the application are no longer absolutized; they are passed through as-is
Workarounds
In production, ensure that ServerConfigBuilder::publicAddress correctly configures the server.
References
• https://portswigger.net/web-security/web-cache-poisoning
Related
Alias · CVE (1)
- CVE-2021-29479 Ratpack is a toolkit for creating web applications. vulnerability
Weakness · CWE (1)
- CWE-807 Reliance on Untrusted Inputs in a Security Decision weakness