Vulnerability advisory
CVE-2026-43969
Cookie Request Header Injection via Unvalidated Encoder in cow_cookie:cookie/1
Also known as EEF-CVE-2026-43969GHSA-g2wm-735q-3f56
- CVSS 4.0
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
Affected versions
Repository
| Affected commits | Fixed by commit |
|---|---|
| GIT github.com/erlef/cowlib ↗ | |
| All commits before 177953dd51540da11090666c1f007214127a1144 | 177953dd51540da11090666c1f007214127a1144 |
| GIT github.com/ninenines/cowlib ↗ | |
| b34155f725245848dca3a505398e262b1d50f25b to before c17fd73945ef536cccecc492d286fb6b6d1c3307 | c17fd73945ef536cccecc492d286fb6b6d1c3307 |
| Not specified | f017f8a0ecbffd5033d9ab49bf180186f7a523a7 |
Also listed as affected (48)
| |
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 before 2.21.0.
References
- Webgithub.com ↗
- Webosv.dev/vulnerability/EEF-CVE-2026-43969 ↗
- Webrepo.hex.pm ↗
- Advisorycna.erlef.org/cves/CVE-2026-43969.html ↗
- Advisorygithub.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43969.json ↗
- Advisorynvd.nist.gov/vuln/detail/CVE-2026-43969 ↗
- Fixgithub.com/erlef/cowlib/commit/177953dd51540da11090666c1f007214127a1144 ↗
- Fixgithub.com/ninenines/cowlib/commit/c17fd73945ef536cccecc492d286fb6b6d1c3307 ↗
- Fixgithub.com/ninenines/cowlib/commit/f017f8a0ecbffd5033d9ab49bf180186f7a523a7 ↗
- Packagegithub.com/ninenines/cowlib ↗