GHSA-8hxh-r6f7-jf45 json
Memory exhaustion in http4s-async-http-client with large or malicious compressed responses
published 6y ago modified last yr.
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
### Impact A server we connect to with http4s-async-http-client could theoretically respond with a large or malicious compressed stream and exhaust memory in the client JVM. It does not affect http4s servers, other client backends, or clients that speak only to trusted servers. This is related to a transitive dependency on netty-codec-4.1.45.Final, which is affected by [CVE-2020-11612](https://app.snyk.io/vuln/SNYK-JAVA-IONETTY-564897).
### Patches Upgrade to http4s-async-http-client >= 0.21.8. All 1.0 milestones are also safe.
### Workarounds Add an explicit runtime dependency on async-http-client's netty dependencies that evicts them to an unaffected version:
```scala libraryDependencies ++= Seq( "io.netty" % "netty-codec" % "4.1.53.Final" % Runtime, "io.netty" % "netty-codec-socks" % "4.1.53.Final" % Runtime, "io.netty" % "netty-handler-proxy" % "4.1.53.Final" % Runtime, "io.netty" % "netty-common" % "4.1.53.Final" % Runtime, "io.netty" % "netty-transport" % "4.1.53.Final" % Runtime, "io.netty" % "netty-handler" % "4.1.53.Final" % Runtime, "io.netty" % "netty-resolver-dns" % "4.1.53.Final" % Runtime ) ```
### References * https://app.snyk.io/vuln/SNYK-JAVA-IONETTY-564897 * https://github.com/http4s/http4s/issues/3681
### For more information If you have any questions or comments about this advisory: * Open an issue in [http4s](https://github.com/http4s/http4s/issues/new) * Contact a maintainer privately per [http4s' security policy](https://github.com/http4s/http4s/blob/master/SECURITY.md#reporting-a-vulnerability)
Patch / fix
- maven org.http4s:http4s-async-http-client_2.13 0.21.8
- maven org.http4s:http4s-async-http-client_2.12 0.21.8
Is GHSA-8hxh-r6f7-jf45 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| maven | org.http4s:http4s-async-http-client_2.13 | <0.21.8 |
0.21.8 |
| maven | org.http4s:http4s-async-http-client_2.12 | <0.21.8 |
0.21.8 |
Classification
- Weakness
-
- CWE-400 Uncontrolled Resource Consumption
References
Sources
- GitHub Advisory GHSA-8hxh-r6f7-jf45
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.