Ecosyste.ms: Advisories

An open API service providing security vulnerability metadata for many open source software ecosystems.

Security Advisories: MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXhtdzktcTd4OS1qNXFj

Unbounded connection acceptance leads to file handle exhaustion

Impact

All servers running blaze-core <= 0.14.14, including blaze-http and http4s-blaze-server users, are affected.

Blaze, accepts connections unconditionally on a dedicated thread pool. This has the net effect of amplifying degradation in services that are unable to handle their current request load, since incoming connections are still accepted and added to an unbounded queue. Each connection allocates a socket handle, which drains a scarce OS resource. This can also confound higher level circuit breakers which work based on detecting failed connections.

The vast majority of affected users are using it as part of http4s-blaze-server <= 0.21.16. http4s provides a mechanism for limiting open connections, but is enforced inside the Blaze accept loop, after the connection is accepted and the socket opened. Thus, the limit only prevents the number of connections which can be simultaneously processed, not the number of connections which can be held open.

Patches

The issue is fixed in version 0.14.15 for NIO1SocketServerGroup. A maxConnections parameter is added, with a default value of 512. Concurrent connections beyond this limit are rejected. To run unbounded, which is not recommended, set a negative number.

The NIO2SocketServerGroup has no such setting and is now deprecated.

Workarounds

For more information

If you have any questions or comments about this advisory:

Permalink: https://github.com/advisories/GHSA-xmw9-q7x9-j5qc
JSON: https://advisories.ecosyste.ms/api/v1/advisories/MDE2OlNlY3VyaXR5QWR2aXNvcnlHSFNBLXhtdzktcTd4OS1qNXFj
Source: GitHub Advisory Database
Origin: Unspecified
Severity: High
Classification: General
Published: over 3 years ago
Updated: over 1 year ago


CVSS Score: 7.5
CVSS vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Identifiers: GHSA-xmw9-q7x9-j5qc, CVE-2021-21293
References: Repository: https://github.com/http4s/blaze
Blast Radius: 3.6

Affected Packages

maven:org.http4s:blaze-core_2.13
Dependent packages: 1
Dependent repositories: 3
Downloads:
Affected Version Ranges: < 0.14.15
Fixed in: 0.14.15
All affected versions: 0.14.5, 0.14.6, 0.14.7, 0.14.8, 0.14.9, 0.14.10, 0.14.11, 0.14.12, 0.14.13, 0.14.14
All unaffected versions: 0.14.15, 0.14.16, 0.14.17, 0.14.18, 0.15.0, 0.15.1, 0.15.2, 0.15.3, 0.23.12, 0.23.13, 0.23.14, 0.23.15, 0.23.16
maven:org.http4s:blaze-core_2.12
Dependent packages: 1
Dependent repositories: 3
Downloads:
Affected Version Ranges: < 0.14.15
Fixed in: 0.14.15
All affected versions: 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.12.9, 0.12.10, 0.12.11, 0.12.12, 0.12.13, 0.13.0, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.14.5, 0.14.6, 0.14.7, 0.14.8, 0.14.9, 0.14.10, 0.14.11, 0.14.12, 0.14.13, 0.14.14
All unaffected versions: 0.14.15, 0.14.16, 0.14.17, 0.14.18, 0.15.0, 0.15.1, 0.15.2, 0.15.3, 0.23.12, 0.23.13, 0.23.14, 0.23.15, 0.23.16
maven:org.http4s:blaze-core_2.11
Dependent packages: 1
Dependent repositories: 3
Downloads:
Affected Version Ranges: < 0.14.15
Fixed in: 0.14.15
All affected versions: 0.2.0, 0.3.0, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0, 0.7.0, 0.9.0, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.12.1, 0.12.3, 0.12.4, 0.12.5, 0.12.6, 0.12.7, 0.12.8, 0.12.9, 0.12.10, 0.12.11, 0.12.12, 0.12.13, 0.13.0, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.14.5, 0.14.6, 0.14.7, 0.14.8, 0.14.9, 0.14.10, 0.14.11, 0.14.12, 0.14.13, 0.14.14
All unaffected versions: 0.14.15, 0.14.16, 0.14.17, 0.14.18