CVE-2026-12143 PUBLISHED

form-data does not escape CR/LF/quote in multipart field names and filenames (CRLF injection)

Assigner: harborist
Reserved: 12.06.2026 Published: 12.06.2026 Updated: 12.06.2026

form-data is a library for creating readable multipart/form-data streams. In versions through 4.0.5, the field argument to FormData#append and the filename option are concatenated verbatim into the Content-Disposition header without escaping carriage return (CR), line feed (LF), or double-quote (") characters. An application that passes attacker-controlled data as a field name or filename (for example, an API gateway that turns JSON object keys into multipart field names) allows the attacker to terminate the header line and inject additional headers, or to smuggle entire additional multipart parts, into the request the application forwards to a backend. This can let the attacker add or override form fields (e.g. set is_admin=true) seen by the downstream parser. This is an instance of CWE-93 (CRLF injection). The fix escapes CR, LF, and " as %0D, %0A, and %22 in field names and filenames, matching the serialization browsers use per the WHATWG HTML multipart/form-data encoding algorithm. Exploitation requires the consuming application to use untrusted input as a field name or filename; applications that use only fixed/trusted field names are not affected. Fixed in 2.5.6, 3.0.5, and 4.0.6.

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS Score: 8.7

Application uses attacker-controlled input as a multipart field name or filename and forwards the generated request to a trusted backend.

Product Status

Vendor form-data
Product form-data
Versions Default: unaffected
  • affected from 0 to 2.5.6 (excl.)
  • affected from 3.0.0 to 3.0.5 (excl.)
  • affected from 4.0.0 to 4.0.6 (excl.)

Credits

  • yueyueL (https://github.com/yueyueL) reporter
  • LJHarb (https://github.com/LJHarb) remediation developer
  • LJHarb (https://github.com/LJHarb) coordinator

References

Problem Types

  • CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection') CWE