CVE-2026-43969
LowCVSS 3.2Exploitation Probability (EPSS)
Low risk11th percentile - higher than 11% of all known CVEs
Summary
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.
Risk Assessment
An attacker could inject phantom cookies or arbitrary headers, or smuggle a second HTTP request through a shared upstream proxy, potentially bypassing authentication or poisoning responses. This impacts confidentiality and integrity of communications in applications using cowlib.
Recommendation
Upgrade cowlib to version 2.21.0 or later, which includes character validation for cookie names and values. Until patched, avoid passing untrusted data to the cookie/1 function.
Other vulnerabilities in cowlib
See all- CVE-2026-43970High
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.
- 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 CRLF injection vulnerability in cowlib version 2.9.0 allows HTTP response splitting due to improper neutralization of non-VCHAR bytes in structured HTTP header values. The escape_string/2 function fails to escape CR and LF characters, enabling attackers to inject new headers into HTTP responses.
Original NVD description (English source)
Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in ninenines cowlib allows HTTP request splitting and cookie smuggling via unvalidated cookie name and value fields. cow_cookie:cookie/1 in cowlib builds a client-side Cookie: request header from a list of name-value pairs without validating either field. An attacker who controls the cookie names or values passed to this function can inject ;, ,, CR, LF, or TAB characters into the serialized header. This enables two classes of attack: cookie smuggling within a single header (e.g. injecting ; admin=1 to introduce a phantom cookie that the receiving server treats as authentic) and HTTP request header splitting (injecting CRLF to append arbitrary headers or smuggle a complete second request against a shared upstream proxy). The decoder side (parse_cookie_name/1, parse_cookie_value/1) and setcookie/3 already validate and reject these characters; the encoder alone is missing the check. This issue affects cowlib: from 2.9.0 before 2.21.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

