Am I affected?

type your hpax version to check

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.

Weaknesses & attack patterns

Weakness

CWE-407 · Inefficient Algorithmic Complexity in catalog → MITRE ↗

Attack patterns

CAPEC-130 · Excessive Allocation MITRE ↗

Affected — Hex / hpax Hex.pm ↗ Repository ↗

0.1.1 < 1.0.4 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:elixir-mint:hpax:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.HPAX · Elixir.HPAX.Types
source files lib/hpax.ex · lib/hpax/types.ex
routines 'Elixir.HPAX':decode/2 · 'Elixir.HPAX.Types':decode_integer/2 · 'Elixir.HPAX.Types':decode_remaining_integer/3

Affected — GitHub / elixir-mint/hpax Repository ↗

56db437 < 1ba4bb2 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:elixir-mint:hpax:*:*:*:*:*:*:*:*
modules · source files · routines
modules Elixir.HPAX · Elixir.HPAX.Types
source files lib/hpax.ex · lib/hpax/types.ex
routines 'Elixir.HPAX':decode/2 · 'Elixir.HPAX.Types':decode_integer/2 · 'Elixir.HPAX.Types':decode_remaining_integer/3

References

Credits

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

CVSS breakdown

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