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.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
benoitc hackney
Default version status: unaffected
2.0.0 to < 4.0.1affected
pkg:hex/hackneybenoitc hackney
Default version status: unaffected
0334af206d5099fdf510ed9eda18e34396f065ad to < 3d25f9fea26c90609de9d64366fedfe5065413bcaffected
pkg:github/benoitc/hackney