Vulnerability in Ninenines Cowlib
CVE-2026-43966
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.
EPSS: 0.003 (16.3th percentile) — read the EPSS interpretation.
CVSS v3 metric
CVSS v3 base score 5.3 (Medium). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N.
Affected products
- Ninenines Cowlib — versions 2.9.0, a8b793db3d6ffe91d62f81baf41b1dab4cd78fb6
Weakness classification (CWE)
References
- 6b3ad84c-e1a6-4bf7-a703-f496b71e49db (related, Third Party Advisory, third-party-advisory)
- 6b3ad84c-e1a6-4bf7-a703-f496b71e49db (Patch, mitigation)
- 6b3ad84c-e1a6-4bf7-a703-f496b71e49db (Patch, mitigation)
- 6b3ad84c-e1a6-4bf7-a703-f496b71e49db (related, Third Party Advisory)
Frequently asked questions
- What is CVE-2026-43966?
- CVE-2026-43966 is a medium-severity vulnerability in Ninenines Cowlib, classified under HTTP Response Splitting. CVSS score: 5.3/10. Published 2026-06-08.
- How severe is CVE-2026-43966?
- Medium severity. CVSS v3 base score is 5.3 out of 10.