CVE-2026-65624: CWE-770 Allocation of Resources Without Limits or Throttling in ninenines cowboy
Allocation of Resources Without Limits or Throttling vulnerability in ninenines cowboy allows an unauthenticated remote attacker to exhaust connection process memory over HTTP/1.1. The HTTP/1.1 handler in cowboy_http enforces the max_headers limit by counting the number of distinct header names in a map (maps:size(Headers)). When a request contains multiple header lines with the same name, the values are concatenated into a single ever-growing binary stored under that one map key (", " for regular headers, "; " for cookies), so the map size stays at one and the max_headers cap (default 100) is never reached. Because no accumulator bounds the total number of header lines or the total byte size of the header block (only per-line max_header_name_length and max_header_value_length apply), an unauthenticated client can send an arbitrary number of header lines with the same name and grow the connection process's binary memory to arbitrary size within the request window. The impact per connection is bounded by request_timeout (default 5 seconds, not reset by header data), and by max_heap_size when set (the offending connection process is killed once its heap grows past the limit). When max_heap_size is left at the default (unset), sustained abuse can drive the Erlang VM into out-of-memory conditions. This issue affects cowboy from 2.0.0-pre.4 before 2.18.0.
AI Analysis
Technical Summary
The vulnerability arises because cowboy_http enforces the max_headers limit by counting distinct header names in a map. When multiple headers share the same name, their values are concatenated into a single binary under one map key, so the map size does not increase and the max_headers limit is never triggered. There is no limit on the total number of header lines or the total byte size of the header block, only per-line limits. An attacker can send an arbitrary number of headers with the same name, causing the connection process's memory usage to grow arbitrarily large within the request timeout window. If max_heap_size is unset (default), sustained exploitation can cause the Erlang VM to run out of memory. The affected versions are cowboy from 2.0.0-pre.4 before 2.18.0.
Potential Impact
An unauthenticated remote attacker can cause a denial of service by exhausting memory resources on the server running cowboy. This can lead to the Erlang VM running out of memory and potentially crashing or becoming unresponsive. The impact is limited per connection by the request timeout and optionally by max_heap_size if configured. Without max_heap_size set, the server is vulnerable to sustained memory exhaustion attacks.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Users should verify if a fixed version is available beyond 2.18.0 or if configuration options like max_heap_size can be set to limit memory usage per connection. Until an official fix is released, setting max_heap_size to a reasonable limit may mitigate the impact by killing offending connection processes before exhausting system memory.
CVE-2026-65624: CWE-770 Allocation of Resources Without Limits or Throttling in ninenines cowboy
Description
Allocation of Resources Without Limits or Throttling vulnerability in ninenines cowboy allows an unauthenticated remote attacker to exhaust connection process memory over HTTP/1.1. The HTTP/1.1 handler in cowboy_http enforces the max_headers limit by counting the number of distinct header names in a map (maps:size(Headers)). When a request contains multiple header lines with the same name, the values are concatenated into a single ever-growing binary stored under that one map key (", " for regular headers, "; " for cookies), so the map size stays at one and the max_headers cap (default 100) is never reached. Because no accumulator bounds the total number of header lines or the total byte size of the header block (only per-line max_header_name_length and max_header_value_length apply), an unauthenticated client can send an arbitrary number of header lines with the same name and grow the connection process's binary memory to arbitrary size within the request window. The impact per connection is bounded by request_timeout (default 5 seconds, not reset by header data), and by max_heap_size when set (the offending connection process is killed once its heap grows past the limit). When max_heap_size is left at the default (unset), sustained abuse can drive the Erlang VM into out-of-memory conditions. This issue affects cowboy from 2.0.0-pre.4 before 2.18.0.
CVSS v4.0
Score 6.9medium
Affected software
ninenines
cowboy
ninenines
cowboy
cpe:2.3:a:ninenines:cowboy:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises because cowboy_http enforces the max_headers limit by counting distinct header names in a map. When multiple headers share the same name, their values are concatenated into a single binary under one map key, so the map size does not increase and the max_headers limit is never triggered. There is no limit on the total number of header lines or the total byte size of the header block, only per-line limits. An attacker can send an arbitrary number of headers with the same name, causing the connection process's memory usage to grow arbitrarily large within the request timeout window. If max_heap_size is unset (default), sustained exploitation can cause the Erlang VM to run out of memory. The affected versions are cowboy from 2.0.0-pre.4 before 2.18.0.
Potential Impact
An unauthenticated remote attacker can cause a denial of service by exhausting memory resources on the server running cowboy. This can lead to the Erlang VM running out of memory and potentially crashing or becoming unresponsive. The impact is limited per connection by the request timeout and optionally by max_heap_size if configured. Without max_heap_size set, the server is vulnerable to sustained memory exhaustion attacks.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Users should verify if a fixed version is available beyond 2.18.0 or if configuration options like max_heap_size can be set to limit memory usage per connection. Until an official fix is released, setting max_heap_size to a reasonable limit may mitigate the impact by killing offending connection processes before exhausting system memory.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-07-22T13:55:59.401Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a6883049c2644c7f8720e5c
Added to database: 07/28/2026, 10:23:00 UTC
Last enriched: 08/06/2026, 19:42:12 UTC
Last updated: 09/11/2026, 13:40:28 UTC
Views: 71
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.