CVE-2026-109821 Details
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.
A denial-of-service vulnerability has been identified in the Elixir standard library's URI module. This issue arises from improper validation of the port component in URLs parsed by URI.parse/1. An attacker can supply a URL with an excessively long port, causing the application to exhaust CPU resources. The vulnerability is present in Elixir versions 0.5.0 prior to 1.18.6, as well as in the 1.19.0-rc.0 prior to 1.19.7 and 1.20.0-rc.0 prior to 1.20.5 releases. The problem stems from the fact that URI.parse/1 converts the port using String.to_integer/1 without limiting its length. This allows ports of up to 1,262,592 decimal digits to be processed, creating a bignum of that size. While longer inputs trigger a SystemLimitError, the real issue occurs when the parsed URI is converted back to a string, which involves a quadratic-time operation on certain Erlang/OTP versions, including 27, 28, and 29.0. As a result, a port with 400,000 digits takes approximately 2.6 seconds to render, while one megabyte in size requires about 18 seconds.
Elixir versions 1.18.6, 1.19.7, and 1.20.5 have addressed this vulnerability by implementing proper port validation. Users can upgrade to these versions to mitigate the issue.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Oct 30, 2026CISA-ADP
Assessed Oct 30, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/elixir-lang/elixir/security/advisories/GHSA-327h-97cv-59xg | CISA-ADP | AdvisoryRemedyVendor |
| https://cna.erlef.org/cves/CVE-2026-109821.html | EEF | AdvisoryExploitRemedy |
| https://github.com/elixir-lang/elixir/commit/07d9abc3f3ac4c8d2ba8384bd102b6d6205b08b7 | EEF | Source CodeVendor |
| https://github.com/elixir-lang/elixir/commit/39801821eef2d06524e5ebf5a0e4b3c380ad23ae | EEF | Source CodeVendor |
| https://github.com/elixir-lang/elixir/commit/9a39d64a4473d02681c486bc70681c972479d32b | EEF | Source CodeVendor |
| https://github.com/elixir-lang/elixir/commit/b70f33a591b6ab8eb0fa4a7e00bac1c2ed4e0d58 | EEF | Source CodeVendor |
| https://github.com/elixir-lang/elixir/commit/d879b39d778fec2f475689573d5672720c4f2a21 | EEF | Source CodeVendor |
| https://github.com/elixir-lang/elixir/security/advisories/GHSA-327h-97cv-59xg | EEF | AdvisoryRemedyVendor |
| https://github.com/erlang/otp/security/advisories/GHSA-8qw4-2chm-mvj2 | EEF | AdvisoryVendor |
| https://osv.dev/vulnerability/EEF-CVE-2026-109821 | EEF | AdvisoryExploitRemedy |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-1284 | Improper Validation of Specified Quantity in Input | EEF |
| CWE-400 | Uncontrolled Resource Consumption | EEF |
Affected Products
| Product | Versions |
|---|---|
| Elixir | >= 0.5.0, < 1.18.6 (semver) >= 1.19.0-rc.0, < 1.19.7 (semver) >= 1.20.0-rc.0, < 1.20.5 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Oct 30, 2026 | CVE Modified | CISA-ADP |
| Oct 30, 2026 | New CVE Received | EEF |
Volerion