{"id":"CVE-2021-29479","aliases":["GHSA-w6rq-6h34-vh7q"],"url":"https://o3.security/vulnerability/CVE-2021-29479","summary":"Cached redirect poisoning via X-Forwarded-Host header","details":"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.\n\nUsers are only vulnerable if they do not configure a custom `PublicAddress` instance. A custom `PublicAddress` can be specified by using [ServerConfigBuilder::publicAddress](https://ratpack.io/manual/current/api/ratpack/server/ServerConfigBuilder.html#publicAddress-java.net.URI-). For versions prior to 1.9.0, by default, Ratpack utilizes an inferring version of `PublicAddress` which is vulnerable.\n\n### Impact\n\nThis 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.\n\n### Patches\n\nAs of Ratpack 1.9.0, two changes have been made that mitigate this vulnerability:\n\n1. The default PublicAddress implementation no longer infers the address from the request context, instead relying on the configured bind host/port\n2. Relative redirects issued by the application are no longer absolutized; they are passed through as-is\n\n### Workarounds\n\nIn production, ensure that [ServerConfigBuilder::publicAddress](https://ratpack.io/manual/current/api/ratpack/server/ServerConfigBuilder.html#publicAddress-java.net.URI-) correctly configures the server.\n\n### References\n - https://portswigger.net/web-security/web-cache-poisoning","published":"2021-06-29T15:15:18.870Z","modified":"2026-07-09T11:24:11.269167Z","cvss":{"score":6.1,"severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"Maven","name":"io.ratpack:ratpack-core","fixedVersion":"1.9.0"}],"fix":null,"references":[{"type":"ADVISORY","url":"https://github.com/ratpack/ratpack/security/advisories/GHSA-w6rq-6h34-vh7q"},{"type":"EVIDENCE","url":"https://portswigger.net/web-security/web-cache-poisoning"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2021-29479"},{"type":"PACKAGE","url":"https://github.com/ratpack/ratpack"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-07-09T11:24:11.269167Z"}}