CVE-2026-32686 json
Unbounded exponent in decimal enables unauthenticated DoS
published 2026-05-07 6 mo ago modified 2026-10-26 13 d ago also EEF-CVE-2026-32686 , EUVD-2026-28376 , GHSA-rhv4-8758-jx7v
- cvss
- 6.9
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 42%
- public exploits
- 0
- none known
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. 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.
Patch / fix
- hex decimal 3.0.0
- ericmj decimal 3.0.0
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 6 mo ago
Exploit prediction
0.48% chance of exploitation in the next 30 days, higher than 42% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/ericmj/decimal/security/advisories/GHSA-rhv4-8758-jx7v referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.9 | 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 |
| CNA | 4.0 | 6.9 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | decimal | >=0.1.0, <3.0.0 |
3.0.0 |
Affected products
- ericmj decimal
Classification
- Weakness
-
- CWE-400 Uncontrolled Resource Consumption
References
-
github.com
/ericmj/decimal/commit/bc11f4a2b6fb61fc1360a0ab4e79141bba918841
related, web
-
github.com
/ericmj/decimal/commit/6a523f3a73b8c9974540e21c7aa88f1258bb35ae
patch, web
-
github.com
/ericmj/decimal/security/advisories/GHSA-rhv4-8758-jx7v
vendor-advisory, related, exploit, web, advisory
-
cna.erlef.org
/cves/CVE-2026-32686.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-32686
related, web
-
nvd.nist.gov
/vuln/detail/CVE-2026-32686
advisory
-
github.com
/ericmj/decimal
package
-
github.com
/ericmj/decimal/releases/tag/v2.4.0
web
-
github.com
/ericmj/decimal/releases/tag/v3.0.0
web
-
hex.pm
/packages/decimal
package
Sources
- CVE List CVE-2026-32686
- GitHub Advisory GHSA-rhv4-8758-jx7v
- NVD CVE-2026-32686
- OSV EEF-CVE-2026-32686
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.