Description
Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory.

Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit.

This issue affects mint: from 0.1.0 before 1.10.2.
Published: 2026-09-28
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service (memory exhaustion)
Action: Patch
AI Analysis

Impact

The Mint HTTP/2 client delayingly validates frame sizes until an entire payload is received. During this period it keeps each byte in a connection buffer. A malicious server can declare a frame length up to 16,777,215 bytes and send it incrementally, causing the client to accumulate roughly 16 MiB per connection in memory before rejecting the frame. This uncontrolled allocation can exhaust client RAM, leading to a denial‑of‑service condition. The weakness is a classic example of CWE‑770: allocation of resources without limits or throttling.

Affected Systems

All publicly available releases of the elixir‑mint Mint HTTP/2 client from version 0.1.0 up to but not including 1.10.2 are affected. The vulnerability does not exist in releases 1.10.2 and newer, which fixed the frame‑size check to be performed before buffering data. Applications that integrate Mint directly, as well as higher‑level HTTP clients such as Finch and Req that rely on Mint, are at risk when receiving untrusted HTTP/2 traffic.

Risk and Exploitability

The CVSS score of 6.3 reflects a moderate severity. The EPSS score indicates a very low probability of exploitation (<1 %), and the vulnerability is not listed in CISA’s KEV catalog, so it has not been observed in the wild yet. Nevertheless, an attacker who can open an HTTP/2 connection to a vulnerable client can cause the client to consume significant RAM until the connection is closed. Based on the description, it is inferred that the most likely attack vector is a malicious HTTP/2 server that sends an oversized frame and holds the connection open, which can be mitigated by restricting the client to HTTP/1 or upgrading to the corrected version.

Generated by OpenCVE AI on September 30, 2026 at 05:38 UTC.

Remediation

Vendor Workaround

Connect to untrusted origins over HTTP/1 only, with protocols: [:http1] in Mint.HTTP.connect/4, which never runs the HTTP/2 frame decoder. Finch and Req pools use HTTP/1 only unless :http2 is added to their protocols option.


OpenCVE Recommended Actions

  • Upgrade to elixir‑mint 1.11.0 or newer.
  • When connecting to untrusted origins, set protocols: [:http1] in Mint.HTTP.connect/4 to force HTTP/1 and avoid frame decoding.
  • Verify that libraries using Mint (e.g., Finch, Req) are configured not to enable :http2 unless needed.

Generated by OpenCVE AI on September 30, 2026 at 05:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 30 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Description Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory. Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit. This issue affects mint: from 0.1.0 before 1.11.0. Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory. Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit. This issue affects mint: from 0.1.0 before 1.10.2.
References

Mon, 28 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Description Allocation of Resources Without Limits or Throttling vulnerability in elixir-mint mint allows a malicious HTTP/2 server to make the client hold up to about 16 MiB per connection in frames it should reject, consuming client memory. Mint.HTTP2.Frame.decode_next/2 in lib/mint/http2/frame.ex compares a frame with the client's max_frame_size (16,384 bytes by default) only once the whole declared payload has arrived. Until then it returns :more, and Mint.HTTP2 keeps every received byte in the connection buffer. A server can declare a frame length of up to 16,777,215 bytes and withhold the last byte, keeping roughly 1,024 times the advertised limit buffered for as long as the connection stays open. The server has to send every byte the client buffers, so there is no amplification, and the buffer stops at the 24-bit frame length limit. This issue affects mint: from 0.1.0 before 1.11.0.
Title Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size
First Time appeared Elixir-mint
Elixir-mint mint
Weaknesses CWE-770
CPEs cpe:2.3:a:elixir-mint:mint:*:*:*:*:*:*:*:*
Vendors & Products Elixir-mint
Elixir-mint mint
References
Metrics cvssV4_0

{'score': 6.3, 'vector': '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'}


Subscriptions

Elixir-mint Mint
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-30T15:00:38.567Z

Reserved: 2026-09-15T16:00:01.513Z

Link: CVE-2026-92103

cve-icon Vulnrichment

Updated: 2026-09-30T15:00:31.002Z

cve-icon NVD

Status : Deferred

Published: 2026-09-28T12:17:41.973

Modified: 2026-09-30T16:19:23.600

Link: CVE-2026-92103

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-30T05:45:17Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling