Am I affected?
Description
Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting') vulnerability in elixir-tesla tesla allows HTTP header injection via Tesla.Multipart.add_content_type_param/2.
Tesla.Multipart.add_content_type_param/2 appends caller-supplied strings to the multipart content_type_params list without validating for CR (\r) or LF (\n) characters. Tesla.Multipart.headers/1 then joins these params verbatim with "; " to construct the outgoing Content-Type header value. A param containing \r\n splits the header line, allowing arbitrary headers to be injected into the outbound HTTP request. Any application that forwards untrusted input (such as a user-supplied charset or parameter string) into add_content_type_param/2 is affected.
This issue affects tesla: from 0.8.0 before 1.18.3.
Weaknesses & attack patterns
Weakness
CWE-113
·
Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Request/Response Splitting')
in catalog →
MITRE ↗
Attack patterns
CAPEC-105
·
HTTP Request Splitting
MITRE ↗
Affected — Hex / tesla Hex.pm ↗ Repository ↗
modules · source files · routines
Affected — GitHub / elixir-tesla/tesla Repository ↗
modules · source files · routines
Workarounds
Validate content-type parameter strings before passing them to Tesla.Multipart.add_content_type_param/2, rejecting any value that contains \r or \n.
Configurations
The application must pass untrusted input into Tesla.Multipart.add_content_type_param/2.
References
Credits
CVSS breakdown
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:N/SI:L/SA:N