Skip to main content

Erlang/OTP inets CVE-2026-71562

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

Attack ChainAIDerived

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

  1. Access
    Attacker controls or compromises upstream HTTP server
  2. Delivery
    Victim application issues outbound request via inets httpc
  3. Exploit
    Server responds with Content-Length or Retry-After containing ~1.26M digit string
  4. Execution
    httpc_handler calls list_to_integer/1 before any size check
  5. Persist
    BEAM VM performs arbitrary-precision bignum arithmetic for hundreds of milliseconds
  6. Impact
    Repeated on every response, degrading requesting process availability

Vulnerability Assessment

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

Exploitation requires that the target application uses Erlang/OTP's inets httpc module for outbound HTTP requests and that the attacker controls or has compromised at least one HTTP server the client contacts. No authentication to the victim system is needed - the attack is entirely server-side. The vulnerability is triggered at three code sites: Content-Length conversion in httpc_handler.erl, Content-Length in httpc_response:format_response/1, and Retry-After in httpc_response:get_ms_from_retry_after/1 (the last requiring only a leading digit). What limits exploitation: the attacker must occupy a server-side position in the HTTP conversation - passive network observers cannot trigger this. Applications that use httpc exclusively against fully controlled internal endpoints are not exposed. Setting max_body_size does NOT prevent exploitation because list_to_integer/1 is called before the bound comparison and the option defaults to nolimit. Applications that use alternative HTTP clients (e.g., hackney, gun, ibrowse) rather than httpc are unaffected.

Impact

The CVSS 4.0 score of 6.3 with vector AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N accurately represents a narrow, availability-only impact with a specific targeting prerequisite. AT:P (Attack Target: Partial) correctly captures that the attacker must control or compromise an HTTP server the victim client connects to - without that server-side position, exploitation is impossible. The impact is degraded throughput (hundreds of milliseconds stalled per response), not a crash or complete service outage, which aligns with VA:L. No EPSS score was provided in the input, so quantitative exploitation probability cannot be stated; however, the mechanical simplicity of the attack - return a digit string as a header - suggests low complexity once the server-side prerequisite is met. There is no KEV listing and no POC code reported. Real-world priority should be tiered by deployment context: applications using httpc to call third-party, user-controlled, or SSRF-reachable servers carry meaningfully higher exposure than those calling only fully controlled internal endpoints; even a mid-sized operations team should treat this as a routine patch-cycle item rather than an emergency, given the AT:P constraint. CVSS signals and description are consistent - no conflicting data detected.

Exploit ScenarioDerived

An attacker who operates or compromises an HTTP server that an Erlang application queries via httpc crafts responses in which the Content-Length or Retry-After header contains a string of approximately 1.26 million ASCII digits. Each such response causes the httpc_handler process to spend hundreds of milliseconds performing arbitrary-precision integer arithmetic before the value is discarded; by returning this header on every response, the attacker can continually stall any OTP process making outbound httpc requests, degrading its throughput without triggering any crash or error. No public exploit code has been identified at time of analysis.

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

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

Alert me

AnalysisAIv1 – Sep 01, 2026

CPU exhaustion in Erlang/OTP's inets httpc HTTP client allows a malicious or compromised HTTP server to degrade the availability of any OTP process making outbound HTTP calls by returning numeric headers - specifically Content-Length or Retry-After - containing strings of up to approximately 1.26 million digits. Erlang/OTP versions 17.0 through 29.x are affected across three release lines, covering inets 5.10 through 9.7.2. The attack costs the requesting process hundreds of milliseconds of arbitrary-precision arithmetic per response, and the existing max_body_size guard offers no protection because integer conversion occurs before the bound check; the option also defaults to nolimit. No public exploit code has been identified at time of analysis, and this vulnerability is not listed in CISA KEV.

RemediationAI

Upgrade Erlang/OTP to OTP 27.3.4.17 or later in the OTP 27 release line, OTP 28.5.0.6 or later in the OTP 28 line, or OTP 29.0.6 or later in the OTP 29 line, corresponding to inets 9.3.2.7, 9.6.2.3, and 9.7.2 respectively; patch commits aba0fe8c2d700bf4ac94607cf7f00e53bbe4042d and e3be1cfe9f6cedd0cd20d9905e05601dfb31c8aa are available on GitHub and release availability should be confirmed at https://www.erlang.org/doc/system/versions.html. For deployments that cannot upgrade immediately, restrict httpc calls to fully trusted, internally controlled servers over which the operator has complete response control, eliminating the malicious-server prerequisite entirely - this has no functional side effect if the application does not need to call untrusted endpoints. Alternatively, replace httpc with an alternative OTP-compatible HTTP client library (such as hackney or gun) that does not share this integer-conversion code path; this requires code changes but is effective immediately. Setting max_body_size alone is NOT an effective workaround: the conversion precedes the check, so the CPU cost is incurred regardless of that option's value.

Affected VersionsENISA

otp 29.0 <29.0.6
otp 28.0 <28.5.0.6
otp 9.7 <9.7.2
otp 84adefa331c4159d432d22840663c38f155cd4c1 <*
otp 9.4 <9.6.2.3
otp 5.10 <9.3.2.7
otp 17.0 <27.3.4.17

Affected Packages

euvd otp fix: 9.3.2.7, 9.6.2.3, 9.7.2, 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

CWE-1284 (Improper Validation of Specified Quantity in Input) is the root cause: numeric input from an external source is passed to an unbounded conversion function before any size guard can act. Erlang's built-in list_to_integer/1 is documented to accept integers of arbitrary precision, leveraging the BEAM VM's native bignum arithmetic; callers are responsible for bounding inputs before calling it. In httpc_handler.erl, the server-supplied Content-Length string is converted via list_to_integer/1 and only then compared against max_body_size, which defaults to nolimit - making the guard doubly ineffective. The same unbounded conversion appears in httpc_response:format_response/1 for Content-Length and in httpc_response:get_ms_from_retry_after/1 for Retry-After, the latter requiring only that the value begins with a digit. The patch (commits aba0fe8c and e3be1cfe) introduces a max_header_size option defaulting to 10,240 bytes and a max_body_size option, both enforced before integer conversion, and also adds a port-string length guard in eldap.erl. Affected products are identified by CPE cpe:2.3:a:erlang:otp:*:*:*:*:*:*:*:*.

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.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
vuln.today AI 3.7 LOW

AC:H because exploitation requires attacker control of a server the victim client connects to; A:L for degraded-throughput-only impact with no crash or confidentiality/integrity effect.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 3.7 LOW
AV:N/AC:H/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
Present
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 inets httpc allows a malicious or compromised HTTP server to degrade availability by returning a numeric header whose value is a very long run of digits.

httpc_handler.erl converts the server-supplied Content-Length with list_to_integer/1 before comparing it against max_body_size, so the size check cannot protect the conversion, and the option defaults to nolimit in any case. The same unbounded conversion appears in httpc_response:format_response/1 for Content-Length and in httpc_response:get_ms_from_retry_after/1 for Retry-After, which is guarded only by a check that the first character is a digit. A value of up to roughly 1.26 million digits converts successfully and costs the requesting process hundreds of milliseconds of arbitrary-precision arithmetic per response. 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 17.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 inets from 5.10 before 9.3.2.7, from 9.4 before 9.6.2.3, and from 9.7 before 9.7.2. Whether OTP before OTP 17.0, corresponding to inets before 5.10, is affected is unknown.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
used in telecom and distributed systems, not universally deployed
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.3%
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
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
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: Low
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