Vulnerability advisory
CVE-2026-49756
Multipart form-data header injection in Req via unescaped name/filename/content_type
Also known as EEF-CVE-2026-49756GHSA-px9f-whj3-246m
- CVSS 4.0
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N
Affected versions
Repository
| Affected commits | Fixed by commit |
|---|---|
| GIT github.com/wojtekmach/req ↗ | |
| 8431d07b0ac058ea2050f40d622d8e89cb07f33c to before 8e7425f790d669d6996347ad0a72ba57f51138a8 | 8e7425f790d669d6996347ad0a72ba57f51138a8 |
| Not specified | 74506ff2c5addf74df85d79dc726e9b2e264a8ba |
| GIT github.com/wojtekmach/req.git ↗ | |
| 60253dbe9436cb8e9c738f895032f2e87939b597 to before 74506ff2c5addf74df85d79dc726e9b2e264a8ba | 74506ff2c5addf74df85d79dc726e9b2e264a8ba |
Also listed as affected (15)
| |
Description
Improper Neutralization of CRLF Sequences ('CRLF Injection') vulnerability in wojtekmach Req allows multipart parameter smuggling via attacker-influenced part metadata.
Req.Utils.encode_form_part/2 in lib/req/utils.ex builds the per-part headers by interpolating the caller-supplied name, filename, and content_type values directly into the content-disposition and content-type lines with no escaping or CRLF stripping. A value containing ", \r, or \n closes the surrounding quoted value and starts a new header line; an additional \r\n--<boundary> terminates the current part and prepends a smuggled part of the attacker's choosing.
This is reachable through every supported way of supplying a part. It is particularly easy when value is a %File.Stream{}, because filename then defaults to Path.basename(stream.path) and POSIX filenames may legitimately contain \r and \n. Any application that forwards user-controlled filenames (or field names / MIME types) through Req.post/2 with form_multipart: lets an attacker inject arbitrary headers into the outgoing multipart body or smuggle additional fields and parts into the request the victim service sends downstream.
This issue affects req: from 0.5.3 before 0.6.0.
References
- Webcna.erlef.org/cves/CVE-2026-49756.html ↗
- Webgithub.com ↗
- Webosv.dev/vulnerability/EEF-CVE-2026-49756 ↗
- Webrepo.hex.pm ↗
- Advisorygithub.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49756.json ↗
- Advisorygithub.com/wojtekmach/req/security/advisories/GHSA-px9f-whj3-246m ↗
- Advisorynvd.nist.gov/vuln/detail/CVE-2026-49756 ↗
- Fixgithub.com/wojtekmach/req/commit/74506ff2c5addf74df85d79dc726e9b2e264a8ba ↗
- Packagegithub.com/wojtekmach/req ↗
- Packagegithub.com/wojtekmach/req.git ↗