CVE-2026-97209 is an insecure temporary file vulnerability in Elixir's Mix deps.partition feature affecting versions from 1.20.0-rc.4 up to but not including 1.20.5. The vulnerability allows a local user on the same host to execute code as another user by exploiting the way partitioned dependency compilation handles configuration files in a shared temporary directory. The issue arises because the directory is created without ownership checks, enabling an attacker to replace the file before it is read by the client process. This flaw has been fixed in version 1.20.5.
CVE-2026-115274 is a vulnerability in the Elixir standard library's JSON module where improper validation of integer literal length in JSON input can lead to denial of service via CPU and memory exhaustion. The functions JSON.decode/1 and JSON.decode!/1 convert integer literals without bounding their length, allowing extremely large integers to consume excessive resources. This affects Elixir versions 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. Fixed versions are 1.18.6, 1.19.7, and 1.20.5.
CVE-2026-109821 is a vulnerability in the Elixir standard library's URI module where improper validation of the port component in a URL can lead to denial of service via CPU exhaustion. The URI.parse/1 function converts the port string to an integer without limiting its length, allowing extremely large port numbers to be processed. Rendering such a URI back to text triggers a quadratic-time conversion in Erlang/OTP versions 27, 28, and 29.0, causing significant CPU load and delays. This affects Elixir versions from 0.5.0 up to but not including 1.18.6, from 1.19.0-rc.0 up to but not including 1.19.7, and from 1.20.0-rc.0 up to but not including 1.20.5.
CVE-2026-75758 is an uncontrolled recursion vulnerability in the Elixir standard library affecting functions inspect/1, List.to_string/1, and List.to_charlist/1. It occurs when a specially crafted list with a printable prefix exceeding 4096 elements but containing invalid elements later causes repeated nested inspections, leading to process stack growth and potential memory exhaustion of the BEAM node. This vulnerability affects specific release candidate and stable versions of Elixir from 1.15.0-rc.0 up to but not including 1.18.5, 1.19.0-rc.0 up to but not including 1.19.6, and 1.20.0-rc.0 up to but not including 1.20.4.
Uncontrolled Resource Consumption vulnerability in the Elixir standard library's Version module allows an attacker who controls a version string to cause a denial of service through CPU and memory exhaustion.
The version parser converts numeric version components (major, minor, patch and numeric pre-release/build identifiers) to integers without bounding their length. A single large all-digit component therefore forces a super-linear, non-yielding base-10 to arbitrary-precision integer conversion (String.to_integer/1, i.e. :erlang.binary_to_integer/1) that pins a BEAM scheduler, and a larger component raises an uncaught SystemLimitError that crashes the calling process. A single moderately sized string (around one megabyte) is enough; no authentication is required.
This is reachable from the public entry points Version.parse/1, Version.parse!/1, Version.match?/3, Version.compare/2, and Version.parse_requirement/1, which applications routinely call on untrusted input such as HTTP parameters, dependency-manifest fields, and package metadata.
This vulnerability is associated with program files lib/version.ex and program routines 'Elixir.Version.Parser':parse_digits/2.
This issue affects elixir: from 0.9.3 before 1.20.1.