Skip to main content

Tesla EUVDEUVD-2026-34012

| CVE-2026-48598 LOW
Improper Encoding or Escaping of Output (CWE-116)
2026-06-02 EEF GHSA-28jh-g32x-v9v4
2.1
CVSS 4.0 · NVD

Severity by source

NVD PRIMARY
2.1 LOW
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Source Code Evidence Fetched
Jun 02, 2026 - 20:27 vuln.today
Analysis Generated
Jun 02, 2026 - 20:27 vuln.today
CVSS changed
Jun 02, 2026 - 20:22 NVD
2.1 (LOW)

DescriptionCVE.org

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.

AnalysisAI

{k}="#{v}" with no validation of CR, LF, or double-quote characters, enabling a crafted value to close the quoted parameter early, forge headers like Content-Type, or corrupt the part body. No public exploit is identified at time of analysis, and the CVSS 4.0 score of 2.1 (SI:L only) reflects a narrow integrity impact confined to the downstream system receiving the forged multipart payload.

Technical ContextAI

Tesla is an HTTP client adapter library for Elixir, widely used to compose HTTP requests with middleware. The affected code is in Tesla.Multipart (lib/tesla/multipart.ex), specifically the part_headers_for_disposition/1 function, which constructs Content-Disposition header parameters by string interpolation without sanitization. CWE-116 (Improper Encoding or Escaping of Output) precisely describes the root cause: untrusted values are embedded into a structured output format (MIME multipart headers) without escaping the characters that delimit that format - namely CR (\r), LF (\n), and double-quote ("). Three entry points are affected per CPE cpe:2.3:a:elixir-tesla:tesla:*:*:*:*:*:*:*:*: add_field/4 (the name parameter), add_file/3, and add_file_content/4 (both the filename parameter and arbitrary disposition opts). Notably, the default-filename code path in add_file/3 derives the filename via Elixir's Path.basename/1, which does not strip CR or LF, so any application forwarding a partially-attacker-controlled file path is also exposed through that code path.

RemediationAI

The primary fix is to upgrade elixir-tesla Tesla to version 1.18.3 or later, which introduces the assert_disposition_value!/2 validation function that raises ArgumentError if any disposition parameter value contains CR, LF, or double-quote characters. The patch is confirmed at commit bb1a2c3da2775924d96e3db8e315dcc4d5d2246e (https://github.com/elixir-tesla/tesla/commit/bb1a2c3da2775924d96e3db8e315dcc4d5d2246e). Callers should note that after patching, passing filenames or field names containing these characters will raise at runtime rather than silently producing malformed requests - applications should add upstream input validation or sanitization to strip or reject CR, LF, and double-quote in any user-supplied strings before passing them to Tesla.Multipart.add_field/4, add_file/3, or add_file_content/4. As a compensating control for teams unable to upgrade immediately, applications can sanitize multipart parameter values by explicitly removing or rejecting \r, \n, and " characters at the point where user-controlled data enters the multipart construction code. This is preferable to disabling multipart functionality entirely, which may break application features.

Share

EUVD-2026-34012 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy