CVE-2026-48862
HighCVSS 8.2Exploitation Probability (EPSS)
Low risk31th percentile - higher than 31% of all known CVEs
Summary
A vulnerability in the Mint library for Elixir allows an attacker-controlled HTTP/2 server to exhaust client memory via PUSH_PROMISE flooding. The server can create an unlimited number of stream entries without checking the max_concurrent_streams limit, leading to memory exhaustion.
Risk Assessment
A single long-lived connection to a malicious server can exhaust client memory, causing a crash and denial of service.
Recommendation
Update the Mint library to version 1.9.0 or later.
Other vulnerabilities in Mint
See all- CVE-2026-59249Medium
A vulnerability in the Mint library (versions 0.1.0 through 1.9.2) allows HTTP response smuggling by accepting a plus/minus sign in the chunk-size line of Transfer-Encoding: chunked. A malicious HTTP/1 server can exploit this interpretation mismatch to poison the response queue on a shared keep-alive connection, causing subsequent requests to receive forged responses.
- CVE-2026-59246Medium
A vulnerability in the Mint library for Elixir allows a remote HTTP/2 server to exhaust client memory by sending an infinite stream of zero-length CONTINUATION frames. The header accumulation mechanism lacks proper protection against this attack, leading to denial of service (DoS).
- CVE-2026-58229High
A vulnerability in the Mint library for Elixir allows a remote HTTP server to exhaust client memory and cause a denial of service (DoS). The HTTP header decoding functions accumulate headers without limits, and the parser has no cap on the number or size of headers, enabling an attacker to stream infinite header lines without a terminating blank line.
- CVE-2026-56810High
A vulnerability in the Mint library (Mint.HTTP1 module) allows a remote server to exhaust client memory by sending a chunked transfer-encoded response with a declared huge chunk size (e.g., 2 GiB) and slowly sending data without ever completing the chunk. The client buffers all received bytes without emitting them to the caller, leading to uncontrolled memory growth and out-of-memory conditions.
- CVE-2026-49754High
A vulnerability in the Mint library for Elixir allows an attacker-controlled HTTP/2 server to exhaust client memory via a CONTINUATION frame flood. There is no limit on the header accumulator size, leading to memory exhaustion and BEAM process death.
- CVE-2026-49753Medium
Elixir Mint library before version 1.9.0 is vulnerable to HTTP response smuggling. The Content-Length parser accepts + and - signs, violating RFC 7230. An attacker-controlled HTTP/1 server can desynchronize response framing on shared connections.
- CVE-2026-48861Low
Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in elixir-mint Mint allows HTTP Request Splitting and HTTP Request Smuggling. In lib/mint/http1/request.ex, the encode_request_line/2 function splices the caller-supplied method and target arguments directly into the HTTP/1 request line without any character validation. An application that forwards attacker-controlled input as the HTTP method or target to Mint.HTTP.request/5 is therefore exposed to request-line CRLF injection. Mint 1.7.0 introduced validate_request_target/2, which rejects CRLF and other control characters in the target by default, but the method field remains unvalidated.
Original NVD description (English source)
Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint Mint allows attacker-controlled HTTP/2 servers to exhaust memory in a Mint client via PUSH_PROMISE flooding. In lib/mint/http2.ex, Mint.HTTP2.decode_push_promise_headers_and_add_response/5 inserts a :reserved_remote entry into conn.streams for every promised stream ID. The neighbouring Mint.HTTP2.assert_valid_promised_stream_id/2 only verifies that the promised ID is even and not already present; client_settings.max_concurrent_streams is not consulted at promise time. The concurrency cap is only checked when the response HEADERS for the promised stream arrive, so a server that emits PUSH_PROMISE frames and withholds the matching HEADERS never trips that check. HTTP/2 server push is accepted by default (client_settings.enable_push defaults to true). A single long-lived HTTP/2 connection to a hostile server lets that server pin one conn.streams entry per PUSH_PROMISE frame it sends, with no upper bound, until the client process runs out of memory. This issue affects mint: from 0.2.0 before 1.9.0.

