GitHub Advisoryadvisory · Packagist

GHSA-f7hx-fqxw-rvvj Insufficient output escaping of attachment names in PHPMailer

HIGH Published 2020-05-27 Modified 2023-01-20 Official page ↗
Aliases
CVE-2020-13625
Ecosystem
Packagist
Packages
phpmailer/phpmailer
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weaknesses
CWE-116
Reviewed
2020-05-27

Affected packages

• Packagist phpmailer/phpmailer: < 6.1.6 → fixed in 6.1.6

Description

Impact CWE-116: Incorrect output escaping. An attachment added like this (note the double quote within the attachment name, which is entirely valid): $mail->addAttachment('/tmp/attachment.tmp', 'filename.html";.jpg'); Will result in a message containing these headers: Content-Type: application/octet-stream; name="filename.html";.jpg" Content-Disposition: attachment; filename="filename.html";.jpg" The attachment will be named `filename.html`, and the trailing `";.jpg"` will be ignored. Mail filters that reject `.html` attachments but permit `.jpg` attachments may be fooled by this. Note that the MIME type itself is obtained automatically from the *source filename* (in this case `attachment.tmp`, which maps to a generic `application/octet-stream` type), and not the *name* given to the attachment (though these are the same if a separate name is not provided), though it can be set explicitly in other parameters to attachment methods. Patches Patched in PHPMailer 6.1.6 by escaping double quotes within the name using a backslash, as per RFC822 section 3.4.1, resulting in correctly escaped headers like this: Content-Type: application/octet-stream; name="filename.html\";.jpg" Content-Disposition: attachment; filename="filename.html\";.jpg" Workarounds Reject or filter names and filenames containing double quote (`"`) characters before passing them to attachment functions such as `addAttachment()`. References CVE-2020-13625. PHPMailer 6.1.6 release For more information If you have any questions or comments about this advisory: • Open an issue in the PHPMailer repo

Related

Alias · CVE (1)

  • CVE-2020-13625 PHPMailer before 6.1.6 contains an output escaping bug when the name of a file attachment contains a double quote character. vulnerability

Weakness · CWE (1)

  • CWE-116 Improper Encoding or Escaping of Output weakness

References