CVE-2026-32686
Vulnérabilité moyenne dans decimal (ericmj)
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.
Gravité et risque d'exploitation
CVE-2026-32686 obtient un score CVSS de 6.9/10, soit une gravité moyenne. Selon le modèle EPSS, la probabilité qu'elle soit exploitée dans les 30 prochains jours est de 0.34 %, ce qui la place devant 25.4 % des CVE référencées.
Que faire ?
- Vérifiez si decimal (versions <6a523f3a73b8c9974540e21c7aa88f1258bb35ae, bc11f4a2b6fb61fc1360a0ab4e79141bba918841, 0.1.0, <3.0.0) est présent sur votre parc.
- Appliquez le correctif ou la version corrigée indiqués dans les références de l'éditeur.
- À défaut de correctif, limitez l'exposition (filtrage réseau, désactivation du composant).
- Automatisez la détection : les agents CVE Heimdall (gratuits, open source) corrèlent l'inventaire de vos serveurs avec la base CVE.
Références
- https://github.com/ericmj/decimal/security/advisories/GHSA-rhv4-8758-jx7v
- https://cna.erlef.org/cves/CVE-2026-32686.html
- https://osv.dev/vulnerability/EEF-CVE-2026-32686
- https://github.com/ericmj/decimal/commit/bc11f4a2b6fb61fc1360a0ab4e79141bba918841
- https://github.com/ericmj/decimal/commit/6a523f3a73b8c9974540e21c7aa88f1258bb35ae
