CVE Catalog

CVE-2026-43966

MediumCVSS 5.3
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.45%

38th percentile - higher than 38% of all known CVEs

Summary

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.

Risk Assessment

The risk includes the possibility of manipulating HTTP responses, which could lead to content injection, session hijacking, or other response splitting attacks. The vulnerability affects applications using cowlib to build HTTP headers.

Recommendation

Upgrade cowlib to a version that includes a fix for this issue. Also, validate input data thoroughly before using it in HTTP header building functions.

Other vulnerabilities in cowlib

See all
Original NVD description (English source)

Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') vulnerability in ninenines cowlib allows HTTP response splitting via non-VCHAR bytes in structured-fields string values. cow_http_struct_hd:escape_string/2 in cowlib only escapes \ and ", passing all other bytes through verbatim. This creates an encoder/decoder asymmetry: the matching parser accepts only printable ASCII (0x20–0x7E, excluding " and \), but the encoder emits any byte including CR and LF. An application that builds a structured HTTP header via cow_http_struct_hd:item/1 (or a higher-level wrapper such as cow_http_hd:wt_protocol/1) from attacker-controlled input can have \r\n injected into the serialized header value. Once on the wire, the injected CRLF terminates the current header and any following bytes are interpreted as a new header, enabling HTTP response splitting. This issue affects cowlib: from 2.9.0 onward.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS