PT-2026-137921
CVE-2026-113431
·
Published
2026-11-06
·
Updated
2026-11-06
Description by
CVSS 4.0
8.7
HighMetricsAV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Name of the Vulnerable Software and Affected Versions
cowlib versions 2.7.0 and later
Description
An unauthenticated remote peer can cause memory exhaustion on an HTTP/2 endpoint. The issue occurs because the
cow http2 machine:headers decode/4 function in src/cow http2 machine.erl uses cow hpack:decode/3 to decode HEADERS blocks without enforcing a limit on the size of the decoded header list, ignoring the SETTINGS MAX HEADER LIST SIZE defined in RFC 9113. An attacker can store a large header value (up to 4096 bytes) in the dynamic table and reference it multiple times using one-byte indexed fields. This allows a small amount of network traffic to expand into a large memory allocation. For example, a 110-byte block can decode into a header list of approximately 390 KB. When a consumer, such as Cowboy using cowboy http2:headers to map/2, joins repeated cookie fields into a single binary, it allocates this expanded size for every stream, potentially leading to the Erlang VM running out of memory.Recommendations
For cowlib versions 2.7.0 and later, consider the following mitigations:
- For Cowboy servers that do not require HTTP/2, set
protocols => [http]in the protocol options to disable HTTP/2. - Lower the
max headersvalue in the HTTP/2 protocol options to reduce the memory allocation per stream. - As a temporary workaround, restrict the use of the
cookieparameter in HTTP/2 requests to minimize the risk of memory amplification.
Exploitability
Exploit
Fix
Impacts
Vendors
Affected products
Found an issue in the description? Have something to add? Feel free to write us 👾