Skip to main content

Erlang/OTP EUVDEUVD-2026-69229

| CVE-2026-59696 MEDIUM
Improper Validation of Specified Quantity in Input (CWE-1284)
2026-09-01 EEF
6.9
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send URI with million-digit port field
  2. Delivery
    uri_string:parse/1 processes attacker input
  3. Exploit
    get_port/1 passes unbounded string to binary_to_integer/1
  4. Execution
    bignum arithmetic stalls calling process
  5. Impact
    sustained requests degrade service availability

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Input size validation
Exploitation Conditions

The application must call uri_string:parse/1 (or any OTP function that internally delegates to it) on a URI supplied or influenced by an attacker, with no prior validation of the port component's length. All four authority-parsing paths - host, registered-name, IPv4, and IPv6 - are affected, so no specific URI form or protocol is required. No authentication is required (CVSS PR:N) and no non-default configuration is needed; the vulnerable code path is reached by the standard documented API in its default state. Applications that do not parse attacker-supplied URIs through this API are not affected. The primary factor limiting impact is that each malicious request causes a per-process delay rather than a crash or data exposure; an attacker must sustain request volume to cause meaningful service degradation, and network-layer rate limiting significantly reduces exploitability.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:L) characterizes a low-complexity, unauthenticated network attack with limited availability impact - per-process CPU stalling rather than a crash or data breach. No EPSS score was included in the source intelligence data, and the vulnerability has not been added to CISA KEV; exploitation probability is inferred from the attack description and vector rather than confirmed telemetry. The practical attack surface is significant: uri_string:parse/1 is the standard OTP URI-parsing interface, so any networked Erlang service that accepts user-supplied URIs - HTTP servers, LDAP clients, webhook processors, API gateways - is exposed by default without requiring any non-default configuration. Even a mid-sized IT operation in gdynia running RabbitMQ, a Phoenix web application, or a custom Erlang HTTP service should treat this as a priority patch given the zero-friction, unauthenticated attack path and the breadth of the exposed API surface. Sustained service-level availability impact requires repeated requests since each individual request causes only a per-process delay, meaning rate limiting at the network edge meaningfully raises the practical bar; the absence of a crash or data exposure keeps this below critical severity despite the wide exposure.

Exploit ScenarioDerived

An attacker sends an HTTP request or other network message to an Erlang application that calls uri_string:parse/1 on attacker-supplied input, embedding a URI such as http://example.com:11111...1/path with approximately one million digit characters as the port value. Each such request causes the receiving Erlang process to stall for hundreds of milliseconds of bignum arithmetic; by sending a sustained stream of such requests, the attacker degrades throughput or causes request timeouts without crashing the node or accessing any data. No public exploit code has been identified, but the attack requires no specialized tooling and is trivially constructable from the CVE description alone.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 01, 2026

Availability degradation in Erlang/OTP stdlib's URI parser allows any remote, unauthenticated attacker to stall an Erlang process for hundreds of milliseconds by supplying a URI whose port field contains an arbitrarily long run of digits. The function uri_string:parse/1 - the documented, standard interface for URI parsing in OTP - routes all authority forms through get_port/1, which calls binary_to_integer/1 with no length bound; a syntactically valid port of approximately 1.26 million digits converts successfully, burning CPU on arbitrary-precision arithmetic without raising an error. Affected OTP versions span releases 21.0 through the 27.x, 28.x, and 29.x trains; vendor-released patches are available, and no public exploit or active exploitation has been confirmed at time of analysis.

RemediationAI

Upgrade Erlang/OTP to one of the patched releases: OTP 27.3.4.17 or later (stdlib 6.2.2.5+), OTP 28.5.0.6 or later (stdlib 7.3.0.2+), or OTP 29.0.6 or later (stdlib 8.0.4+) as confirmed by the vendor advisory at https://github.com/erlang/otp/security/advisories/GHSA-8qw4-2chm-mvj2. Source-level patch commits are at https://github.com/erlang/otp/commit/aba0fe8c2d700bf4ac94607cf7f00e53bbe4042d and https://github.com/erlang/otp/commit/e3be1cfe9f6cedd0cd20d9905e05601dfb31c8aa. Where immediate upgrade is not feasible, applications should validate that the port component of any attacker-supplied URI does not exceed 5 characters before passing it to uri_string:parse/1; this eliminates the bignum computation path with no functional side effects for legitimate URIs. At the network layer, rate limiting and request-size caps at a reverse proxy or load balancer will reduce the volume of crafted requests reaching Erlang workers, though they do not eliminate the vulnerability. The updated httpc module adds max_header_size (default 10240 bytes) and max_body_size options for outbound HTTP clients; explicitly setting both limits is recommended for all httpc-based consumers.

Affected VersionsENISA

otp 7.0 <7.3.0.2
otp 3.5 <6.2.2.5
otp 28.0 <28.5.0.6
otp 8.0 <8.0.4
otp 29.0 <29.0.6
otp 29a9dd0e17a97a3e6e46f0d08c6ba8f31db33f5e <*
otp 21.0 <27.3.4.17

Affected Packages

euvd otp fix: 6.2.2.5, 7.3.0.2, 8.0.4, 27.3.4.17, 28.5.0.6, 29.0.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in the uri_string module of Erlang/OTP's standard library (stdlib), which provides the canonical URI parsing API for OTP applications. The root cause is CWE-1284 (Improper Validation of Specified Quantity in Input): Erlang's binary_to_integer/1 is a bignum routine that accepts integers of arbitrary size by language design, and get_port/1 passes the raw port substring to it while catching only error:badarg, which is not raised for very large integers that convert successfully. All four authority-parsing paths in uri_string:parse/1 - host, registered-name, IPv4, and IPv6 - converge on this code path, meaning the attack surface is the full documented API surface rather than an obscure option. Patch commits aba0fe8c2d and e3be1cfe9f address the issue: eldap.erl gains a guard clause restricting Sport to at most 5 characters (sufficient for the maximum valid port value 65535), and httpc gains configurable max_header_size (default 10240 bytes) and max_body_size limits. Affected CPE: cpe:2.3:a:erlang:otp across all three release trains (OTP 21-27, 28, and 29).

Know when Erlang gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 6.9 MEDIUM
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
vuln.today AI 5.3 MEDIUM

Network-accessible, zero-auth, zero-configuration path to CPU stall; no confidentiality or integrity impact, only per-process availability degradation with unchanged scope.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP stdlib allows a remote attacker to degrade availability by supplying a URI whose port component is a very long run of digits.

uri_string:get_port/1 passes the port substring to binary_to_integer/1 with no length bound, catching only error:badarg, so a syntactically valid port of up to roughly 1.26 million digits converts successfully and costs the calling process hundreds of milliseconds of arbitrary-precision arithmetic. The conversion is reached from every authority-parsing path in uri_string:parse/1, including the host, registered-name, and IPv4 and IPv6 forms. parse/1 is the documented interface for parsing URIs, so any application that parses an attacker-supplied URI is exposed without further configuration. The conversion function is documented to accept integers of any size, so bounding the input is the caller's responsibility.

This issue affects OTP from OTP 21.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6, corresponding to stdlib from 3.5 before 6.2.2.5, from 7.0 before 7.3.0.2, and from 8.0 before 8.0.4.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Medium
widely used in telecom, messaging, and distributed systems
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Erlang

View all
CVE-2025-32433 CRITICAL POC
10.0 Apr 16

Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling

CVE-2017-1000385 MEDIUM POC
5.9 Dec 12

The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2020-13802 CRITICAL POC
9.8 Sep 02

Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat

CVE-2014-1693 HIGH POC
7.5 Dec 08

Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje

CVE-2021-29221 HIGH POC
7.0 Apr 09

A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV

CVE-2016-10253 CRITICAL
9.8 Mar 18

An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab

CVE-2022-37026 CRITICAL
9.8 Sep 21

In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in

CVE-2026-89422 CRITICAL
9.3 Sep 22

Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-55953 CRITICAL
9.1 Jul 27

An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy