CVE-2026-70399
HighCVSS 8.7Summary
A vulnerability in the inets HTTP server in Erlang/OTP allows a remote unauthenticated attacker to cause denial of service by opening and holding many connections. The max_clients option is not set by default, allowing unlimited simultaneous connections, leading to resource exhaustion.
Risk Assessment
An attacker can overload the server, exhausting processes, memory, and file descriptors, leading to complete service unavailability.
Recommendation
Update Erlang/OTP to a patched version (OTP 27.3.4.17, 28.5.0.6, or 29.0.6) or explicitly set max_clients to an appropriate value.
Other vulnerabilities in Erlang/OTP inets
See all- CVE-2026-74994Medium
The mod_auth module in OTP's inets httpd server, when configured with dets or mnesia authentication backends and multiple directory configuration blocks, collapses all directory blocks into a single shared user/group namespace. A user added to one protected directory is accepted as valid for all other protected directories on the same server instance.
- CVE-2026-73270High
A vulnerability in the inets HTTP server in Erlang/OTP allows a remote unauthenticated attacker to read files in a mod_auth protected directory by requesting them with different casing, on case-insensitive filesystems. The path check does not use the caseless option, allowing authentication bypass.
- CVE-2026-71562Medium
The httpc module in Erlang/OTP inets has an improper validation of specified quantity vulnerability. A malicious or compromised HTTP server can degrade availability by returning a numeric header with a very long run of digits, causing expensive integer conversion.
- CVE-2026-71380High
A vulnerability in the inets HTTP server in Erlang/OTP allows a remote unauthenticated attacker to cause denial of service by sending valid headers with a large Content-Length and then stalling. The server cancels the request timeout after header parsing and does not re-arm it, leaving workers waiting indefinitely.
- CVE-2026-66835High
A vulnerability in the inets HTTP server in Erlang/OTP allows a remote unauthenticated attacker to read files in a mod_auth protected directory by prefixing the request path with an extra slash. URI normalization does not collapse double slashes, causing the path check to miss the protected directory.
- CVE-2026-66357High
The inets HTTP server in Erlang/OTP does not implement obs-fold (header continuation lines), which may lead to HTTP request smuggling vulnerabilities. Every CRLF followed by a non-CRLF starts a new header, which can be exploited by an attacker.
Original NVD description (English source)
Allocation of Resources Without Limits or Throttling vulnerability in Erlang/OTP inets httpd allows an unauthenticated remote attacker to cause denial of service by opening and holding open a large number of connections. The max_clients option is documented to default to 150, and the inets hardening guide presents that limit as the first layer of denial-of-service defence, but a server that does not set it explicitly accepts an unlimited number of simultaneous connections. Establishing the connections is sufficient; no valid request and no authentication are required. The accept gate in httpd_manager:handle_new_connection/4 reads the option with httpd_util:lookup/2, which returns undefined when the key is absent, rather than the three-argument form carrying the 150 default that the neighbouring get_ustate/2 uses. Erlang term ordering places every integer before every atom, so the Count =< Max guard holds for any connection count and the server never returns {reject, busy}. Each accepted connection occupies a worker process and a socket for as long as it is held, driving the node towards process, memory and file descriptor exhaustion. Servers that set max_clients explicitly are unaffected, because a configured value is applied as intended. 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.

