Skip to content
Fencer Intel
low —

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 Fencer

Affected 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

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.