CVE-2026-115274 Denegación de servicio por agotamiento de CPU y memoria en JSON.decode/1 de Elixir
JSON.decode/1 y JSON.decode!/1 convierten cada literal entero con erlang:binary_to_integer/1 sin limitar su longitud, por lo que un literal de un millón de dígitos consume entre 100 y 300 veces más CPU que una cadena de igual longitud. Un atacante no autenticado puede causar denegación de servicio por agotamiento de CPU y memoria; las aplicaciones generadas por phx.new decodifican los cuerpos de las peticiones antes del enrutamiento y la autenticación. Corregido en 1.18.6, 1.19.7 y 1.20.5.
CVSS 4.0
- Probabilidad de explotación · EPSS del 09/110,5 % · percentil 42
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
elixir-lang elixir
desde 1.18.0-rc.0 hasta antes de 1.18.6desde 1.19.0-rc.0 hasta antes de 1.19.7desde 1.20.0-rc.0 hasta antes de 1.20.5
elixir-lang elixir
793c1147210388587defb649f25f293ffbfa6b1b
Qué hacer
- Verificá si usás elixir y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 4.0 · 6.9 MEDIA
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
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Requisitos del ataqueNinguno
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Ninguna
- Disponibilidad (sistema vulnerable)Baja
- Confidencialidad (sistemas posteriores)Ninguna
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
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.
Referencias (8)
- github.com/elixir-lang/elixir/security/advisories/GHSA-rp5q-xqhq-926h
- cna.erlef.org/cves/CVE-2026-115274.html
- osv.dev/vulnerability/EEF-CVE-2026-115274
- github.com/elixir-lang/elixir/commit/793c1147210388587defb649f25f293ffbfa6b1b
- github.com/elixir-lang/elixir/commit/c81f12265919c34a0d5134f1905a4eb4edaea1c2
- github.com/elixir-lang/elixir/commit/7154e8781da9fd016a973ea01776a011c8b5726a
- github.com/elixir-lang/elixir/commit/cd158efacdc10b30232864251747dff9b8387dfe
- github.com/elixir-lang/elixir/commit/ee5cc23f8928aa5a0f25bb7f28e42ecfc7b7d396
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.