GHSA-wv64-j4fq-5f9x
Http4s: CookieJar middleware accepts arbitrary Set-Cookie domain
Quick fix
GHSA-wv64-j4fq-5f9x — org.http4s:http4s-client_2.12: upgrade to the fixed version with the command below.
# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-client_2.12Details
When processing a `Set-Cookie` from a response, the `CookieJar` client middleware trusts the server-supplied `Domain` attribute verbatim, with no check that it domain-matches the host that sent the cookie (RFC6265 §5.3 step 6) and no public suffix check. A malicious or compromised server can therefore plant a cookie for any domain in the cookie jar, which is subsequently set on the client's next request to that victim domain, enabling session fixation or overwriting security-relevant cookies.
## Impact
Session fixation and overwrite of security-relevant cookies for arbitrary domains contacted by the same wrapped client.
## Preconditions
- Application uses the `CookieJar` client middleware. - Application contacts an attacker-controlled (or compromised) server using the same jar it uses for trusted hosts.
## Workarounds
- Do not share a `CookieJar` across trusted and untrusted targets.
## Note
This middleware still does not implement public suffix rejection.
Are you affected?
Enter the version of the package you're using.
Affected packages
0Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-client_2.120Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-client_2.131.0.0-M1Fixed in: 1.0.0-M47# pom.xml: bump <version>1.0.0-M47</version> for org.http4s:http4s-client_2.131.0.0-M1Fixed in: 1.0.0-M47# pom.xml: bump <version>1.0.0-M47</version> for org.http4s:http4s-client_30Fixed in: 0.23.35# pom.xml: bump <version>0.23.35</version> for org.http4s:http4s-client_3References
- https://github.com/http4s/http4s/security/advisories/GHSA-wv64-j4fq-5f9x[WEB]
- https://github.com/http4s/http4s/commit/87535f7288f3baaf6736e2735087e473762b5b2f[WEB]
- https://github.com/http4s/http4s[PACKAGE]
- https://github.com/http4s/http4s/releases/tag/v0.23.35[WEB]
- https://github.com/http4s/http4s/releases/tag/v1.0.0-M47[WEB]