CVE-2026-109821Medium· 6.3▾ TwilightPoC availableImproper Validation of Specified Quantity in Input vulnerability in the Elixir standard library's URI module allows an attacker who supplies a URL to cause a denial of service through CPU exhaustion. URI.parse/1 converts the port compon…
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 34.7 · likelihood 0.1 · exploitation 12
A public proof-of-concept already exists for this vulnerability — see Exploit availability below.
Stakeholder-Specific Vulnerability Categorization from CISA's ADP record at CVE.org: whether exploitation is observed, whether an attack can be automated, and how much of the system is at stake. The CVSS score shown above comes from the assigning CNA record, not NVD.
Exploit-prediction probability, daily snapshots since Nov 5.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via CVEORG
0.5%
Improper Validation of Specified Quantity in Input vulnerability in the Elixir standard library's URI module allows an attacker who supplies a URL to cause a denial of service through CPU exhaustion.
URI.parse/1 converts the port component with String.to_integer/1 in split_authority/1 (lib/elixir/lib/uri.ex) without bounding its length, so a port of up to 1,262,592 decimal digits produces a bignum of that size and a longer one raises SystemLimitError. Rendering the parsed URI back to text (URI.to_string/1, inspect/1, logging, error formatting) converts the bignum with :erlang.integer_to_binary/1, which is quadratic on Erlang/OTP 27, 28 and 29.0: a 400,000-digit port renders in about 2.6 seconds and a 1 MB port in about 18 seconds. Ports above 65535 are also accepted.
This issue affects elixir: from 0.5.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.
elixir >= 0.5.0 < 1.18.6elixir >= 1.19.0-rc.0 < 1.19.7elixir >= 1.20.0-rc.0 < 1.20.5elixir-lang/elixir >= 39801821eef2d06524e5ebf5a0e4b3c380ad23ae < *Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
Reject long URLs before parsing them, for example anything above a few kilobytes, and reject a parsed port above 65535 before rendering or using the %URI{}. URI.new/1 is not affected on Erlang/OTP 27.3.4.17, 28.5.0.6, 29.0.6 and later, where :uri_string limits the port to 5 digits.
Connected by shared product, vendor, weakness, or advisory.
CVE-2026-115274Medium· 6.9Unbounded integer parsing in JSON.decode/1 enables CPU and memory exhaustion denial of service in Elixir
CVE-2026-49762Medium· 5.1Uncontrolled 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…
CVE-2026-69186Medium· 5.3c-ares is an asynchronous resolver library
CVE-2026-50285High· 7.5Pomerium is an identity and context-aware access proxy
CVE-2026-97209Medium· 5.4Insecure temporary file in mix deps.partition lets a local user execute code in another user's dependency build
CVE-2026-114349Medium· 6.5Apache Kafka: Denial of service via unbounded memory allocation when decoding compressed record batches