---
id: CVE-2026-32686
title: >-
  Uncontrolled Resource Consumption vulnerability in ericmj decimal allows
  unauthenticated remote Denial of Service.


  The decimal library does not bound the exponent on parsed input
summary: >-
  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. Decim…
severity: medium
cvss: 6.9
cvssVector: 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'
cwe:
  - CWE-400
vendor: ericmj
product: decimal
affected:
  - decimal >= 0.1.0 < 3.0.0
  - >-
    ericmj/decimal >= bc11f4a2b6fb61fc1360a0ab4e79141bba918841 <
    6a523f3a73b8c9974540e21c7aa88f1258bb35ae
published: '2026-05-07'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T14:17:21.870'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-32686'
references:
  - url: 'https://cna.erlef.org/cves/CVE-2026-32686.html'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/ericmj/decimal/commit/6a523f3a73b8c9974540e21c7aa88f1258bb35ae
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: >-
      https://github.com/ericmj/decimal/commit/bc11f4a2b6fb61fc1360a0ab4e79141bba918841
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://github.com/ericmj/decimal/security/advisories/GHSA-rhv4-8758-jx7v'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://osv.dev/vulnerability/EEF-CVE-2026-32686'
    label: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
  - url: 'https://github.com/ericmj/decimal/security/advisories/GHSA-rhv4-8758-jx7v'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
  - cve.org
  - exploit-available
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-05-08T22:42:13.343081Z'
cvssSource: cna
epss: 0.00321
epssPercentile: 0.25311
ingestedAt: '2026-09-08T14:34:06.483Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
