Skip to content
OpenAdvisories
Medium · 6.9 CVE-2026-115274 EUVD-2026-113758

Unbounded integer parsing in JSON.decode/1 enables CPU and memory exhaustion denial of service in Elixir

Published Oct 30, 2026 · Updated Oct 30, 2026 · Assigned by EEF

Description

Improper Validation of Specified Quantity in Input vulnerability in the Elixir standard library's JSON module allows an unauthenticated attacker who supplies a JSON document to cause a denial of service through CPU and memory exhaustion.

JSON.decode/1 and JSON.decode!/1 convert each integer literal with erlang:binary_to_integer/1 and do not bound its length. A literal of one million digits decodes successfully but costs 100 to 300 times as much CPU as a string of the same length, so one request body of a few megabytes holds a scheduler for about a second. A literal of more than about 1.29 million digits raises SystemLimitError. Applications generated by phx.new decode request bodies with JSON in Plug.Parsers, before routing and authentication.

This issue affects elixir: from 1.18.0-rc.0 before 1.18.6, from 1.19.0-rc.0 before 1.19.7, and from 1.20.0-rc.0 before 1.20.5.

Affected products

VendorProductAffectedFixed
elixir-lang elixir 1.18.0-rc.0 – < 1.18.6, 1.19.0-rc.0 – < 1.19.7, 1.20.0-rc.0 – < 1.20.5 1.18.6

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 elixir-lang No fix yet —
Debian 13 elixir-lang No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 18.04 LTS elixir No fix yet —
Ubuntu 16.04 LTS elixir No fix yet —
Ubuntu 14.04 LTS elixir No fix yet —

References