Am I affected?

type your hackney version to check

Description

Allocation of Resources Without Limits or Throttling vulnerability in benoitc hackney allows Flooding.

hackney_h3:await_response_loop/6 accumulates the HTTP/3 response body in memory without any size cap. The after Timeout clause is a per-message inactivity timer that resets on every received chunk, housekeeping message, or settings frame — it is not a wall-clock deadline. A malicious HTTP/3 server that emits one small chunk every Timeout - 1 ms with Fin = false and never sends a final frame keeps the loop alive indefinitely while the accumulation buffer grows linearly without bound, eventually exhausting the BEAM process heap and causing an out-of-memory condition.

This issue affects hackney: from 2.0.0 before 4.0.1.

Weaknesses & attack patterns

Weakness

CWE-400 · Uncontrolled Resource Consumption in catalog → MITRE ↗

Attack patterns

CAPEC-125 · Flooding MITRE ↗

Affected — Hex / hackney Hex.pm ↗ Repository ↗

2.0.0 < 4.0.1 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:benoitc:hackney:*:*:*:*:*:*:*:*
modules · source files · routines
modules hackney_h3
source files src/hackney_h3.erl
routines hackney_h3:await_response_loop/6

Affected — GitHub / benoitc/hackney Repository ↗

0334af2 < 3d25f9f affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:benoitc:hackney:*:*:*:*:*:*:*:*
modules · source files · routines
modules hackney_h3
source files src/hackney_h3.erl
routines hackney_h3:await_response_loop/6

Configurations

The application must use the HTTP/3 transport by calling hackney_h3 directly or by passing {transport, h3} to hackney:request/5. The default hackney transport (TCP/TLS) is not affected.

References

Credits

Peter Ullrich Finder
Benoit Chesneau Remediation developer
Jonatan Männchen / EEF Analyst

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
« All CVEs