CRLF injection in Tesla.Multipart disposition parameters allows multipart part header injection
Improper Encoding or Escaping of Output vulnerability in elixir-tesla tesla allows multipart part header injection via unescaped Content-Disposition parameter values. Tesla.Multipart.part_headers_for_disposition/1 interpolates each disposition parameter as #{k}="#{v}" with no validation of CR (\r), LF (\n), or double-quote characters. The values come verbatim from the caller via Tesla.Multipart.add_field/4 (the name parameter), Tesla.Multipart.add_file/3, and Tesla.Multipart.add_file_content/4 (both the filename parameter and other disposition opts). A " in the value closes the quoted parameter early; a \r\n ends the Content-Disposition header line and starts a new part header (such as a forged Content-Type), or, after a second \r\n, ends the entire part header block and prepends bytes to the part body. The default-filename path in add_file/3 derives the filename via Path.basename/1, which does not strip CR or LF, so any application forwarding a partially-attacker-controlled file path inherits the same issue. This issue affects tesla: from 0.8.0 before 1.18.3.
CVE-2026-48598
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: cve:CVE-2026-48598
tesla
Source reference: /containers/cna/affected/0/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
tesla
Source reference: /containers/cna/affected/1/product
- Affected versions
- Not stated in this record
- Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"cpes": [
"cpe:2.3:a:elixir-tesla:tesla:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/elixir-tesla/tesla",
"vendor": "elixir-tesla",
"modules": [
"'Elixir.Tesla.Multipart'"
],
"product": "tesla",
"versions": [
{
"status": "affected",
"version": "0.8.0",
"lessThan": "1.18.3",
"versionType": "semver"
}
],
"packageURL": "pkg:hex/tesla",
"packageName": "tesla",
"programFiles": [
"lib/tesla/multipart.ex"
],
"collectionURL": "https://repo.hex.pm",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "'Elixir.Tesla.Multipart':part_headers_for_disposition/1"
},
{
"name": "'Elixir.Tesla.Multipart':add_field/4"
},
{
"name": "'Elixir.Tesla.Multipart':add_file/3"
},
{
"name": "'Elixir.Tesla.Multipart':add_file_content/4"
}
]
},
{
"cpes": [
"cpe:2.3:a:elixir-tesla:tesla:*:*:*:*:*:*:*:*"
],
"repo": "https://github.com/elixir-tesla/tesla",
"vendor": "elixir-tesla",
"modules": [
"'Elixir.Tesla.Multipart'"
],
"product": "tesla",
"versions": [
{
"status": "affected",
"version": "6ebfdb9abe9c6f119408045b933d82462decd351",
"lessThan": "bb1a2c3da2775924d96e3db8e315dcc4d5d2246e",
"versionType": "git"
}
],
"packageURL": "pkg:github/elixir-tesla/tesla",
"packageName": "elixir-tesla/tesla",
"programFiles": [
"lib/tesla/multipart.ex"
],
"collectionURL": "https://github.com",
"defaultStatus": "unaffected",
"programRoutines": [
{
"name": "'Elixir.Tesla.Multipart':part_headers_for_disposition/1"
},
{
"name": "'Elixir.Tesla.Multipart':add_field/4"
},
{
"name": "'Elixir.Tesla.Multipart':add_file/3"
},
{
"name": "'Elixir.Tesla.Multipart':add_file_content/4"
}
]
}
]- Related CVEs
- CVE-2026-48598
Source reference:
/cveMetadata/cveId
Publisher severity
low
Source reference: /containers/cna/metrics
- Event
- #1917 · Revision 1
- Added to Heist Feed
- Publisher date