Unbounded port parsing in URI.parse/1 enables CPU exhaustion denial of service in Elixir
Summary
| CVE | CVE-2026-109821 |
|---|---|
| State | PUBLISHED |
| Assigner | EEF |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-30 09:17:12 UTC |
| Updated | 2026-10-30 09:17:12 UTC |
| Description | 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. |
Risk And Classification
Primary CVSS: v4.0 6.3 MEDIUM from 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Problem Types: CWE-400 | CWE-1284 | CWE-1284 CWE-1284 Improper Validation of Specified Quantity in Input | CWE-400 CWE-400 Uncontrolled Resource Consumption
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 4.0 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | Secondary | 6.3 | MEDIUM | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/C... |
| 4.0 | CNA | CVSS | 6.3 | MEDIUM | CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N |
CVSS v4.0 Breakdown
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Elixir-lang | Elixir | affected 0.5.0 1.18.6 semver | Not specified |
| CNA | Elixir-lang | Elixir | affected 1.19.0-rc.0 1.19.7 semver | Not specified |
| CNA | Elixir-lang | Elixir | affected 1.20.0-rc.0 1.20.5 semver | Not specified |
| CNA | Elixir-lang | Elixir | affected 39801821eef2d06524e5ebf5a0e4b3c380ad23ae * git | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| github.com/elixir-lang/elixir/commit/39801821eef2d06524e5ebf5a0e4b3c380a... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/erlang/otp/security/advisories/GHSA-8qw4-2chm-mvj2 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/elixir-lang/elixir/commit/b70f33a591b6ab8eb0fa4a7e00bac1c2ed4... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/elixir-lang/elixir/security/advisories/GHSA-327h-97cv-59xg | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| osv.dev/vulnerability/EEF-CVE-2026-109821 | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | osv.dev | |
| cna.erlef.org/cves/CVE-2026-109821.html | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | cna.erlef.org | |
| github.com/elixir-lang/elixir/commit/d879b39d778fec2f475689573d5672720c4... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/elixir-lang/elixir/commit/9a39d64a4473d02681c486bc70681c97247... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| github.com/elixir-lang/elixir/commit/07d9abc3f3ac4c8d2ba8384bd102b6d6205... | 6b3ad84c-e1a6-4bf7-a703-f496b71e49db | github.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Eric Meadows-Jönsson (en)
CNA: Eric Meadows-Jönsson (en)
CNA: José Valim (en)
CNA: Eric Meadows-Jönsson (en)
CNA: Jonatan Männchen / EEF (en)
Additional Advisory Data
Workarounds
CNA: 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.