Skip to main content

Erlang/OTP inets EUVDEUVD-2026-69226

| CVE-2026-71380 HIGH
Missing Release of Resource after Effective Lifetime (CWE-772)
2026-09-01 EEF
8.7
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Open TCP connections to httpd listener
  2. Delivery
    Send valid HTTP headers with oversized Content-Length
  3. Exploit
    Halt body transmission indefinitely
  4. Execution
    Worker process blocks with no timeout armed
  5. Persist
    Repeat across all max_clients slots
  6. Impact
    Legitimate requests denied service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Resource cleanup on lifecycle end
Exploitation Conditions

The target application must be using Erlang/OTP's inets httpd as its HTTP server; applications using Cowboy, Elli, or any other Erlang HTTP library are not affected. The vulnerable path is triggered by any HTTP request whose Content-Length header declares more bytes than the attacker actually transmits - no authentication, no special endpoint, and no non-default server feature needs to be enabled. The default configuration is directly exploitable because minimum_bytes_per_second is not set by default, leaving no safeguard against stalled body reads. Exploitation is bounded to OTP versions 17.0 through the fixed releases (27.3.4.17, 28.5.0.6, 29.0.6); status of OTP before 17.0 is explicitly unknown per vendor. The attacker requires only TCP-level network access to the httpd listener port.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H) accurately reflects the low barrier to exploitation: no authentication, no user interaction, and trivially automatable at near-zero attacker bandwidth. The availability impact is High because a single attacker can exhaust the entire inets httpd worker pool (bounded by max_clients) and deny service to all legitimate clients. No EPSS score was provided in the input intelligence, so exploitation probability cannot be quantified numerically. Neither KEV listing nor public POC has been identified, indicating this is not yet observed in widespread active campaigns. Despite the absence of in-the-wild data, the attack's minimal prerequisites and decade-wide affected version range - spanning OTP 17.0 onward - mean any operator running inets httpd as a publicly reachable service on an unpatched OTP release faces meaningful real-world exposure. The attack window's breadth suggests many long-running Erlang deployments that track major but not minor OTP releases may be silently affected.

Exploit ScenarioDerived

An attacker establishes multiple concurrent TCP connections to the inets httpd listener and sends syntactically valid HTTP request headers on each, declaring a very large Content-Length (e.g., several gigabytes), then transmits no further bytes. Because the request handler cancels its timeout upon successful header parsing and installs no timer for body reading, each stalled connection permanently occupies a worker process. After filling all slots permitted by max_clients in this manner, legitimate requests are refused or time out, achieving full denial of service at negligible bandwidth cost and with no exploit code required beyond a standard TCP client.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

Erlang/OTP's inets HTTP server (httpd) is vulnerable to a slow-body resource exhaustion attack exploitable by unauthenticated remote attackers across OTP versions 17.0 through 29.0. The request handler cancels its active timeout after successfully parsing request headers, then re-arms the socket for body data without installing any replacement timer, allowing an attacker to open connections with syntactically valid headers and a large Content-Length and then stall indefinitely - permanently occupying a worker process per connection. Vendor patches are available for the OTP 27.x, 28.x, and 29.x branches; no public exploit code or CISA KEV listing has been identified at time of analysis.

RemediationAI

Upgrade to OTP 27.3.4.17 (inets 9.3.2.7), OTP 28.5.0.6 (inets 9.6.2.3), or OTP 29.0.6 (inets 9.7.2) per the vendor advisory at GHSA-5vp4-58hc-h8cc. The patch is confirmed at GitHub commit 81b453aac5a006bb8d26405f2bc3cf24e9d7733c. As a compensating control prior to patching, configure the minimum_bytes_per_second option in the inets httpd configuration to enable the byte-rate enforcement that is disabled by default; this causes stalled connections to be reclaimed, though it risks prematurely terminating legitimate clients on genuinely slow network links. Reducing max_clients to a lower value limits the number of workers an attacker can simultaneously occupy, at the cost of reduced server concurrency for legitimate traffic. Applications that do not use inets httpd - for example those using Cowboy, Elli, or any other Erlang HTTP server - are unaffected by this vulnerability.

Affected VersionsENISA

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

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

The affected component is the httpd HTTP server within Erlang/OTP's inets application (CPE cpe:2.3:a:erlang:otp). The root cause maps to CWE-772 (Missing Release of Resource after Effective Lifetime): httpd_request_handler:handle_info/2 cancels the active request timeout as soon as header parsing succeeds, and when httpd_request:whole_body/2 determines that received bytes are fewer than the declared Content-Length, it returns a continuation and re-arms the socket with {active, once} without setting any new timer. The sole existing safeguard - periodic enforcement of a minimum_bytes_per_second byte rate - is disabled in the default configuration and must be explicitly opted into. The upstream fix at commit 81b453aac5a006bb8d26405f2bc3cf24e9d7733c renames the option max_body_read_timeout to request_timeout, extends timer coverage to the entire body-reading phase, and refreshes the timer on each incoming chunk, closing the window where a stalled connection consumes a worker indefinitely.

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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Network-reachable with no authentication or interaction required; scope unchanged, only availability impacted via full worker pool exhaustion.

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

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
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Missing Release of Resource after Effective Lifetime vulnerability in Erlang/OTP inets httpd allows an unauthenticated remote attacker to cause denial of service by sending valid request headers with a large Content-Length and then stalling before the body is complete.

httpd_request_handler:handle_info/2 cancels the request timeout as soon as a parse step succeeds, which includes the headers, and the clause that handles a decoder asking for more data re-arms the socket with {active, once} without setting any further timer. httpd_request:whole_body/2 returns such a continuation whenever the bytes received are fewer than the announced Content-Length, so a well-formed request that stops mid-body leaves the worker waiting indefinitely. The periodic byte-rate check that would reclaim it is armed only when minimum_bytes_per_second is configured, which it is not by default. Repeating this across connections occupies every worker permitted by max_clients and denies service to legitimate clients at negligible bandwidth cost.

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.

Technical POC Analysis

CWE-772 (Missing Release of Resource after Effective Lifetime).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Erlang/OTP's inets HTTP server (versions 17.0-29.0) contains a resource exhaustion vulnerability (CVSS 8.7) allowing unauthenticated remote attackers to exhaust worker processes and deny service by sending HTTP requests with large Content-Length headers and stalling body transmission. Organizations running Erlang/OTP-based HTTP services face potential service interruption if unpatched.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 68% exploitable
Prevalence
Low
Erlang niche; most Erlang HTTP apps use Cowboy, not inets httpd
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 HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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: Important
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