CVE-2026-43970
HighCVSS 8.2Exploitation Probability (EPSS)
Low risk43th percentile - higher than 43% of all known CVEs
Summary
CVE-2026-43970 is a vulnerability related to improper handling of highly compressed data in the cowlib library, which can lead to remote denial of service attacks via memory exhaustion. It allows unauthenticated users to send specially crafted SPDY frames that can cause significant memory consumption.
Risk Assessment
Organizations using cowlib may be exposed to attacks that lead to service outages due to memory exhaustion, resulting in downtime and loss of application availability.
Recommendation
It is recommended to update the cowlib library to version 2.16.1 or later to mitigate this vulnerability. Additionally, implementing input size restrictions can help minimize the risk.
Other vulnerabilities in cowlib
See all- CVE-2026-43971Medium
cowlib (Erlang) versions 2.9.0 through 2.20.0 fail to escape values inserted into the Link: header in cow_link:link/1. Special characters in the URI, rel, or attribute keys can be injected into the header, allowing additional Link directives to be smuggled. As a result, victim browsers may be forced to make connections to attacker-controlled resources.
- CVE-2026-59248High
A vulnerability in the cowlib library allows an unauthenticated remote attacker to exhaust memory on a vulnerable server or client by sending specially crafted HTTP/2 or HTTP/3 frames. The issue stems from missing limits in the HPACK and QPACK decoder, which processes arbitrarily long prefixed integers, causing large bignum allocations and heavy garbage collection churn.
- CVE-2026-43966Medium
A vulnerability in the cowlib library (from version 2.9.0 onward) involves improper neutralization of CRLF sequences in HTTP headers, enabling HTTP response splitting attacks. The cow_http_struct_hd:escape_string/2 function in cowlib only escapes \ and ", passing all other bytes through verbatim, creating an encoder/decoder asymmetry. An attacker can inject \r\n into the serialized header, allowing new headers to be added and potentially splitting the HTTP response.
- CVE-2026-43969Low
The cowlib Erlang library's cow_cookie:cookie/1 function builds a Cookie header without validating cookie names or values. This allows injection of ;, comma, CR, LF, or TAB characters, enabling cookie smuggling and HTTP request splitting. Affects versions from 2.9.0 before 2.21.0.
- CVE-2026-43968Medium
cowlib versions 2.6.0 to before 2.16.1 contain a CRLF injection vulnerability allowing SSE event splitting and injection via unvalidated field values. An attacker can inject additional SSE lines and forge a complete event with arbitrary type and data.
Original NVD description (English source)
Improper Handling of Highly Compressed Data (Data Amplification) vulnerability in ninenines cowlib allows unauthenticated remote denial of service via memory exhaustion. cow_spdy:inflate/2 in cowlib passes peer-supplied compressed bytes directly to zlib:inflate/2 with no output size bound. The SPDY header compression dictionary (?ZDICT) is public, and zlib compresses long runs of repeated bytes at roughly 1024:1, so a few kilobytes of SPDY frame payload can decompress to gigabytes on the BEAM heap, OOM-killing the node. A single unauthenticated SPDY frame is sufficient to trigger the condition. The parsers for syn_stream, syn_reply, and headers frame types are all affected via cow_spdy:parse_headers/2. This issue affects cowlib from 0.1.0 before 2.16.1.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

