Skip to content
CVE PROGRAM SOURCE RECORD6.9 Medium

CVE-2026-32686

Unbounded exponent in decimal enables unauthenticated DoS

Description

Uncontrolled Resource Consumption vulnerability in ericmj decimal allows unauthenticated remote Denial of Service. The decimal library does not bound the exponent on parsed input. Storing a decimal with a very large exponent (e.g. Decimal.new("1e1000000000")) is accepted without error. Subsequent calls to arithmetic functions (Decimal.add/2, Decimal.sub/2, Decimal.div/2M), Decimal.to_string/2M with :normalM or :xsdM format, Decimal.to_integer/1M, Decimal.round/3M, or Decimal.compare/3M with a threshold allocate memory proportional to the exponent value, which can exhaust available memory and crash the BEAM VM. Any application that accepts user-supplied decimal input and subsequently performs arithmetic, rounding, conversion to integer, or string formatting on it is exposed. A single malicious request is sufficient to cause an out-of-memory crash. This issue affects decimal: from 0.1.0 before 3.0.0.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

ericmj decimal

Default version status: unaffected

  • 0.1.0 to < 3.0.0affected
pkg:hex/decimal

ericmj decimal

Default version status: unaffected

  • bc11f4a2b6fb61fc1360a0ab4e79141bba918841 to < 6a523f3a73b8c9974540e21c7aa88f1258bb35aeaffected
pkg:github/ericmj/decimal

References