Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconLure Mint client to malicious HTTP/2 server
-
DeliveryAccept connection with enable_push=true
-
ExploitSend request to attacker origin
-
InstallServer floods PUSH_PROMISE frames without HEADERS
-
C2Reserved streams accumulate in conn.streams unbounded
-
ExecuteBEAM process exhausts memory
-
ImpactClient process and supervisors crash
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The victim application must use Mint (versions 0.2.0 through 1.8.x) to make an HTTP/2 connection to an attacker-controlled or attacker-influenced server, and HTTP/2 server push must remain enabled - which is the default (client_settings.enable_push=true). No authentication or user interaction with the Mint host is required, and the attack works against default configurations. Exploitation is LIMITED by the fact that the client must initiate the outbound connection (reflected in CVSS AT:P), so purely server-side Mint deployments that never act as a client, or clients restricted to trusted origins via egress controls, are not exposed. Lowering max_concurrent_streams does NOT limit exploitation on unpatched versions because the cap is not enforced at PUSH_PROMISE time. |
| Impact | The CVSS 4.0 vector AV:N/AC:L/AT:P/PR:N/UI:N with VA:H accurately captures a network-reachable, low-complexity, unauthenticated denial of service with no confidentiality or integrity impact; the AT:P (attack requirements: present) component correctly reflects that the victim must initiate a connection to the attacker's HTTP/2 server, which materially limits exploitability compared to a server-side DoS. Real-world risk depends heavily on deployment: services using Mint (directly or via Finch/Tesla) to fetch attacker-controlled URLs (webhooks, link previews, SSRF-style fetchers, federated polling) face meaningful exposure, while Mint clients that only talk to trusted origins are at low risk. No EPSS score, KEV listing, or POC was supplied in the input, and the tag set lists only 'Denial Of Service'; combined with the limited blast radius (process crash, not RCE) this is a real but tier-2 priority - patch on a normal cadence unless the application fetches arbitrary remote URLs, in which case treat as high. |
| Exploit ScenarioDerived | An attacker stands up an HTTP/2 server (or compromises one already reached by the target) and waits for a Mint-based client - for example a Phoenix app fetching link previews or a Finch-backed webhook dispatcher - to open a connection. The malicious server replies to the first request by streaming a continuous flood of PUSH_PROMISE frames with monotonically increasing even stream IDs but never sends the matching response HEADERS, so each promise pins a :reserved_remote entry in conn.streams without bound. Within seconds to minutes the Elixir process backing the connection exhausts BEAM memory and is killed, taking dependent supervision trees down with it; no public exploit code is identified at time of analysis but the test case added in the patch (100 promises against a 5-stream cap) is a working proof of concept. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 02, 2026
Memory exhaustion in elixir-mint Mint HTTP/2 client (versions 0.2.0 through 1.8.x) allows a malicious HTTP/2 server to crash the client process by flooding PUSH_PROMISE frames without follow-up HEADERS, since reserved stream entries bypass the max_concurrent_streams cap. CVSS 4.0 score is 8.2 with attack vector network and high availability impact, but no public exploit is identified at time of analysis and the bug requires the client to connect to a hostile server. Server push is accepted by default (enable_push=true), so any Mint-based HTTP client reaching an attacker-controlled origin is exposed.
RemediationAI
Upgrade the mint dependency to version 1.9.0 or later, which contains the upstream fix in commit 70b97b6a5209fb288b0e04d8e657dda26c59de67 that enforces max_concurrent_streams at PUSH_PROMISE time and refuses excess promises with RST_STREAM/REFUSED_STREAM; consult the advisory at https://github.com/elixir-mint/mint/security/advisories/GHSA-g586-ccqf-7x4r and the Erlang Ecosystem Foundation CNA record at https://cna.erlef.org/cves/CVE-2026-48862.html. For applications that cannot upgrade immediately, the most effective workaround is to disable HTTP/2 server push by passing client_settings: [enable_push: false] when opening Mint connections - this prevents the server from sending PUSH_PROMISE frames at all, with the only side effect being loss of server-push acceleration (rarely used in API clients and broadly deprecated by browsers). A secondary mitigation is to lower client_settings.max_concurrent_streams to a small value to cap memory growth, though pre-patch this only delays exhaustion rather than preventing it because the cap is not checked at promise time. Restricting which hosts the application will connect to (egress allowlists, SSRF protections) further reduces exposure for clients that fetch user-supplied URLs.
Affected VersionsENISA
Affected Packages
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
Mint is a low-level, process-less HTTP/1 and HTTP/2 client library for Elixir used by higher-level clients such as Finch, Tesla (Mint adapter), and Phoenix-related tooling. The defect is a CWE-770 (Allocation of Resources Without Limits or Throttling) flaw in lib/mint/http2.ex: decode_push_promise_headers_and_add_response/5 inserted every promised stream into conn.streams in the :reserved_remote state, while assert_valid_promised_stream_id/2 only checked that the promised ID was even and not duplicated. The HTTP/2 spec's SETTINGS_MAX_CONCURRENT_STREAMS limit was only enforced when the matching response HEADERS arrived, so withholding HEADERS bypassed the cap entirely. CPE cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:* identifies the affected package on Hex. The patch (commit 70b97b6) introduces a reserved_server_stream_count counter, checks open+reserved counts at promise time, and emits RST_STREAM with REFUSED_STREAM for promises beyond the limit while still HPACK-decoding the header block to keep the decoder table in sync.
Know when Mint 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Primary rating from Vendor (EEF) · only source for this CVE.
CVSS VectorVendor: EEF
Lifecycle Timeline
2DescriptionCVE.org
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.
Executive ViewAI
elixir-mint HTTP/2 client versions 0.2.0 through 1.8.x contain a denial-of-service vulnerability enabling attackers to crash client processes by exploiting server push frame handling. Organizations using Mint-based HTTP clients to integrate with external services face availability disruption risks, particularly when communicating with untrusted or compromised endpoints. Vendor patching is required to restore availability assurance for applications depending on reliable external HTTP connectivity.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Memory exhaustion in the Elixir Mint HTTP/2 client (versions 0.1.0 through 1.8.x) allows a malicious or compromised HTTP
HTTP response smuggling in the Elixir Mint HTTP client library (versions 0.1.0 through before 1.9.0) allows attacker-con
Uncontrolled memory allocation in the Elixir Mint HTTP client (Mint.HTTP1 module, versions 0.5.0 through 1.9.0) lets a m
Unbounded memory accumulation in the elixir-mint Mint HTTP client library (versions 0.1.0 through <1.10.0) enables a rem
Unbounded memory consumption in the Elixir Mint HTTP client (versions 0.1.0 through 1.9.1) lets a malicious or attacker-
Memory exhaustion denial-of-service in Elixir Mint affects versions 1.1.0 through 1.10.x and allows a malicious or compr
CPU exhaustion via crafted chunked HTTP responses affects the Elixir Mint HTTP client library (versions 1.9.3 through be
Memory exhaustion in elixir-mint's HTTP/2 client library (mint) allows a malicious or attacker-controlled HTTP/2 server
HTTP/1 response smuggling in the Elixir Mint client (0.1.0 through 1.10.x) allows a malicious or attacker-influenced ori
Memory exhaustion in the Elixir Mint HTTP/2 client (mint 0.1.0 through 1.10.x) lets a malicious or man-in-the-middle HTT
Chunked-response smuggling in the Elixir Mint HTTP client (0.1.0 through 1.10.0) allows a malicious or compromised HTTP/
Response-queue poisoning in the elixir-mint Mint HTTP/1.1 client library (versions 0.1.0 through before 1.9.3) allows a
EUVD-2026-33939
GHSA-g586-ccqf-7x4r
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB