Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/1
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- —
- Confidentiality · integrity · availability
- None · Low · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| ninenines | cowlib | 2.9.0 to before 2.21.0 | 2.21.0 | Patch available | CNA |
| — | cowlib (Hex) | 2.9.0 – 2.16.1 | — | No fix listed | GHSA-g2wm-735q-3f56 |
- cowlib Vendorninenines Affected 2.9.0 to before 2.21.0 Fixed in 2.21.0 Patch available CNA
- cowlib (Hex) Vendor— Affected 2.9.0 – 2.16.1 Fixed in — No fix listed GHSA-g2wm-735q-3f56
Remediation
- Fix · CNA cowlib (ninenines) Fixed in 2.21.0
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-43969
- 2026-10-03 Alias added: GHSA-g2wm-735q-3f56
- 2026-10-09 Fix available: [email protected], ninenines/cowlib@c17fd73945ef536cccecc492d286fb6b6d1c3307 · CNA
- 2026-10-09 2 new references · CNA
References
More ninenines Cowlib vulnerabilities
- TI-2026-06860 Unbounded chunk-size hex digits in cowlib cause quadratic CPU and memory DoS CVSS 4.0HIGH 8.7
- TI-2026-32013 CR Injection in SSE Encoder Enables Event Splitting via cow_sse:event/1 CVSS 4.0MEDIUM 6.3
- TI-2026-32011 HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/2 CVSS 4.0MEDIUM 6.3
Sources
- CVE-2026-43969 · CVE Program
- CVE-2026-43969 · NVD
- FIRST EPSS
- GHSA-g2wm-735q-3f56 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-43969 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences