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.
Analysis and contextual insights are available on OpenCVE Cloud.
Vendor Workaround
Validate inputs into cow_cookie:cookie/1 to only include valid cookie name and value characters as defined in RFC 6265 Section 4.1.1 before passing them to the function.
Tracking
Sign in to view the affected projects.
No advisories yet.
Mon, 11 May 2026 19:15:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
Mon, 11 May 2026 18:45:00 +0000
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/1 | |
| First Time appeared |
Ninenines
Ninenines cowlib |
|
| Weaknesses | CWE-93 | |
| CPEs | cpe:2.3:a:ninenines:cowlib:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Ninenines
Ninenines cowlib |
|
| References |
| |
| Metrics |
cvssV4_0
|
Status: PUBLISHED
Assigner: EEF
Published:
Updated: 2026-05-12T04:26:34.206Z
Reserved: 2026-05-04T18:23:25.573Z
Link: CVE-2026-43969
Updated: 2026-05-11T18:55:21.472Z
Status : Awaiting Analysis
Published: 2026-05-11T19:16:25.330
Modified: 2026-05-13T15:57:03.607
Link: CVE-2026-43969
No data.
OpenCVE Enrichment
Updated: 2026-05-12T09:22:39Z