CVE-2026-32686: Unbounded exponent in decimal enables unauthenticated DoS
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.
Security readout for executives and security teams
Plain-English summary
The Decimal library can accept numbers with extremely large exponents. When an application later calculates, rounds, converts, compares, or formats those numbers, memory consumption can grow until the Erlang BEAM runtime crashes. An unauthenticated attacker may cause an outage with one request when vulnerable applications expose this input path.
Executive priority
Prioritize internet-facing or unauthenticated services that process user-supplied decimals. Upgrade promptly where an exposed data path exists because a single request may interrupt the entire BEAM service. Systems without attacker-controlled decimal processing have lower immediate urgency but should still remove the vulnerable dependency during normal remediation cycles.
Technical view
CVE-2026-32686 is a CWE-400 uncontrolled-resource-consumption flaw affecting Decimal 0.1.0 through versions before 3.0.0. Parsed exponents are insufficiently bounded, and several downstream operations allocate memory proportional to the exponent. The reported outcome is process-wide denial of service through BEAM VM memory exhaustion.
Likely exposure
Exposure requires a vulnerable Decimal version plus an application path accepting attacker-controlled decimal input and subsequently performing an affected operation. Internet-facing APIs, forms, imports, or message consumers may qualify. Merely installing the package does not establish exploitability; dependency usage and data flow must be confirmed.
Exploitation context
The bundle says one malicious request can trigger an out-of-memory crash without authentication. However, it provides no evidence of active exploitation, and the CVE is not listed as KEV. The supplied CVSS vector reports local attack vector, which conflicts with the narrative description of remote application exposure and warrants verification.
Researcher notes
Affected operations include arithmetic, rounding, integer conversion, selected string formats, and threshold-based comparison. Assess reachability rather than relying only on package presence. The source bundle identifies versions before 3.0.0 as affected and provides a fix commit. Investigators should also reconcile the CVSS local-vector designation with the advisory’s unauthenticated remote-impact claim.
Mitigation direction
Upgrade Decimal to version 3.0.0 or later.
Apply the referenced vendor fix if an immediate package upgrade is impractical.
Reject decimal inputs with unreasonable exponent magnitude before parsing or processing.
Limit request size and isolate memory-sensitive workloads where operationally appropriate.
Review vendor guidance before adopting compensating controls.
Validation and detection
Inventory direct and transitive Decimal versions across deployed Elixir releases.
Trace untrusted decimal inputs to arithmetic, rounding, comparison, conversion, and formatting operations.
Confirm deployed dependency locks resolve Decimal 3.0.0 or later.
Verify application-level exponent limits cover every externally reachable ingestion path.
Use controlled non-production tests to confirm oversized exponents are rejected without abnormal memory growth.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-400: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-400 · source CWE mapping
Uncontrolled Resource Consumption
Uncontrolled Resource Consumption represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.