Vulnerability description

Inefficient Algorithmic Complexity vulnerability in elixir-mint hpax allows unauthenticated denial-of-service via unbounded HPACK integer decoding.

hpax decodes HPACK variable-length integers with no upper bound on the decoded value or the number of continuation octets. 'Elixir.HPAX.Types':decode_remaining_integer/3 accumulates the integer as int + (value <<< m), shifting by 7 more bits for each continuation octet and stopping only on a terminating octet or truncated input, never because the integer grew too large. Because BEAM integers are arbitrary precision, a run of N continuation octets builds an O(N)-bit bignum and re-adds into an ever-larger bignum on each step, so the total decoding cost is superlinear (about O(N^2)). An unauthenticated attacker who can send an HTTP/2 header block to a server using this decoder (reached through the 'Elixir.HPAX':decode/2 entry point) can supply a small header block that forces a large, attacker-controlled amount of CPU (and transient memory), a denial-of-service amplification.

This issue affects hpax from 0.1.1 before 1.0.4.

Affected

pkg:hex/hpax

Status Type Version Changes / Fixed in
affected semver 0.1.1 < 1.0.4

pkg:github/elixir-mint/hpax

Module Source File Routine
Elixir.HPAX lib/hpax.ex HPAX.decode/2
Elixir.HPAX.Types lib/hpax/types.ex HPAX.Types.decode_integer/2
HPAX.Types.decode_remaining_integer/3
Status Type Version Changes / Fixed in
affected git 56db437a7e < 1ba4bb2dc9

References

Credits

  • Finder: Peter Ullrich
  • Remediation developer: Andrea Leopardi
  • Analyst: Jonatan Männchen / EEF
  • Analyst: Eric Meadows-Jönsson

CVE record as JSON:  GET /cves/CVE-2026-58226.json
OSV record as JSON:  GET /osv/EEF-CVE-2026-58226.json