Skip to main content
← All vulnerabilities
CVE-2026-43966EEF-CVE-2026-43966GHSA-W4F7-4CXR-RV3C

HTTP Response Splitting via Non-VCHAR Bytes in cow_http_struct_hd:escape_string/2

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.16.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • cowlib

    From 2.9.0 · fixed in *

  • ninenines/cowlib

    From a8b793db3d6ffe91d62f81baf41b1dab4cd78fb6 · fixed in 4401b858f2229abb3ea115c60924f6c77e5f8aa3

  • cowlibHex

    From 2.9.0

  • cowboyHex

    fixed in 2.16.0

  • gunHex

    fixed in 2.16.0

References 6

GitHub · ninenines/cowboy

cna.erlef.org

osv.dev

GitHub · ninenines/gun

GitHub · ninenines/cowlib