CVE-2021-29479 Cached redirect poisoning via X-Forwarded-Host header
Attackers can poison cached redirects via X-Forwarded-Host header in Ratpack, forcing users to malicious sites if custom PublicAddress is not configured.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-29479?
CVE-2021-29479 is a high-severity vulnerability in ratpack, published on 29 Jun 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Ratpack is a toolkit for creating web applications. In versions prior to 1.9.0, 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. For versions prior to 1.9.0, by default, Ratpack utilizes an inferring version of `PublicAddress` which is vulnerable. 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. The vulnerability was patched in Ratpack 1.9.0. As a workaround, ensure that `ServerConfigBuilder::publicAddress` correctly configures the server in production.
Weakness: CWE-807
Which versions are affected by CVE-2021-29479?
2 open source packages ship an affected version, including io.ratpack:ratpack-core. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
io.ratpack:ratpack-core Maven | All versions | 1.9.0 |
io.ratpack:ratpack-core Maven | All versions | 1.9.0 |
Products include Ratpack Project Ratpack.
How do I fix CVE-2021-29479?
Upgrade io.ratpack:ratpack-core to 1.9.0 or later.
Is CVE-2021-29479 being exploited?
There is no known exploitation of CVE-2021-29479 in the wild and no public exploit code.
Other vulnerabilities in ratpack
- CVE-2021-29485 Remote Code Execution Vulnerability in Session Storage
- CVE-2019-17513 io.ratpack:ratpack-core vulnerable to Improper Neutralization of Special Elements in Output ('Injection')
- CVE-2021-29481 Client side sessions should not allow unencrypted storage
- CVE-2021-29480 Default client side session signing key is highly predictable
- CVE-2019-11808 Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG) in Ratpack
Sources
Also known as GHSA-w6rq-6h34-vh7q.