CVE-2026-92103: Mint HTTP/2 client buffers oversized frames up to 16 MiB before enforcing max_frame_size
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.decodenext/2 in lib/mint/http2/frame.ex compares a frame with the client's maxframesize (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.
Affected Software
Event History
Frequently Asked Questions
Which deployments are realistically exposed?
Deployments using affected Mint versions as an HTTP/2 client are exposed when they connect to a malicious or compromised HTTP/2 server. The server can retain roughly 16 MiB of memory per open client connection by declaring a large frame and withholding its final byte.
What does an attacker need to do to trigger the memory consumption?
The attacker must control the HTTP/2 server endpoint and send a frame with a declared payload length up to 16,777,215 bytes, delivering all but the last byte. This is not an amplification issue: the server must transmit every byte retained in the client buffer.
Is the default frame-size configuration affected?
Yes. The default client max_frame_size is 16,384 bytes, but the affected decoding behavior does not reject an oversized frame until its declared payload has fully arrived. As a result, a connection can buffer about 1,024 times the advertised default limit.
How can the issue be remediated?
Upgrade mint to version 1.11.0 or later. Versions from 0.1.0 before 1.11.0 are affected.