Atom table exhaustion via unrecognized URL schemes in hackney
At a glance
Severity
HIGH 8.7
EPSS
EPSS 0.75 % · percentile 55 (2026-10-27)
State
PUBLISHED
Published
Updated
Assigner
EEF
NVD status
Analyzed
Description
Allocation of Resources Without Limits or Throttling vulnerability in benoitc hackney allows Flooding. The URL parser in src/hackney_url.erl converts every unrecognized URL scheme to a permanent BEAM atom via binary_to_atom/2. BEAM atoms are never garbage-collected and the atom table defaults to a hard limit of 1,048,576 entries. An attacker who can supply URLs with attacker-chosen scheme prefixes — directly as request targets, as configured webhook URLs, or via Location headers followed during redirects — can exhaust the atom table and crash the entire BEAM VM with system_limit.
This issue affects hackney: from 2.0.0 before 4.0.1.