Every CVE Search/ Get API key

CVE-2016-10045

Remote code execution in PHPMailer

9.8 CriticalPublic exploitFix available

CVE-2016-10045 is a critical vulnerability (CVSS 9.8) in Phpmailer Project Phpmailer, published December 30, 2016. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 97.7%, the 99th percentile. Fixed in phpmailer/phpmailer 5.2.20.

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

97.7%Up 13.2 points since Feb 4, 2022
90%50%10%1%

What each source reports

NVD Score used 9.8

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
CVE-2016-10045
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-77
Updated
2026-11-02
CVE List No score

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
CVE-2016-10045
Updated
2026-11-02
EUVDEUVD-2020-0327 No score

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
EUVD-2020-0327
Updated
2026-11-03
GitHub AdvisoriesGHSA-4pc3-96mx-wwc8 9.8

Remote code execution in PHPMailer

Impact

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

This issue really emphasises that it's worth avoiding the built-in PHP mail() function entirely.

Patches

Fixed in 5.2.20

Workarounds

Send via SMTP to localhost instead of calling the mail() function.

References

https://nvd.nist.gov/vuln/detail/CVE-2016-10045 See also https://nvd.nist.gov/vuln/detail/CVE-2016-10033

For more information

If you have any questions or comments about this advisory:

Record
GHSA-4pc3-96mx-wwc8
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-77
Updated
2026-11-02
OSVALPINE-CVE-2016-10045 9.8

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
ALPINE-CVE-2016-10045
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSV 9.8

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
CVE-2016-10045
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVGHSA-4pc3-96mx-wwc8 9.8

Remote code execution in PHPMailer

Impact

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

This issue really emphasises that it's worth avoiding the built-in PHP mail() function entirely.

Patches

Fixed in 5.2.20

Workarounds

Send via SMTP to localhost instead of calling the mail() function.

References

https://nvd.nist.gov/vuln/detail/CVE-2016-10045 See also https://nvd.nist.gov/vuln/detail/CVE-2016-10033

For more information

If you have any questions or comments about this advisory:

Record
GHSA-4pc3-96mx-wwc8
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-77
Updated
2026-11-02
OSVUBUNTU-CVE-2016-10045 9.8

The isMail transport in PHPMailer before 5.2.20 might allow remote attackers to pass extra parameters to the mail command and consequently execute arbitrary code by leveraging improper interaction between the escapeshellarg function and internal escaping performed in the mail function in PHP. NOTE: this vulnerability exists because of an incorrect fix for CVE-2016-10033.

Record
UBUNTU-CVE-2016-10045
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 3.0
9.8 CriticalCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
OSVUSN-5956-1 No score

libphp-phpmailer vulnerabilities

Dawid Golunski discovered that PHPMailer was not properly escaping user input data used as arguments to functions executed by the system shell. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 16.04 ESM. (CVE-2016-10033, CVE-2016-10045)

It was discovered that PHPMailer was not properly escaping characters in certain fields of the code_generator.php example code. An attacker could possibly use this issue to conduct cross-site scripting (XSS) attacks. This issue was only fixed in Ubuntu 16.04 ESM and Ubuntu 18.04 ESM. (CVE-2017-11503)

Yongxiang Li discovered that PHPMailer was not properly converting relative paths provided as user input when adding attachments to messages, which could lead to relative image URLs being treated as absolute local file paths and added as attachments. An attacker could possibly use this issue to access unauthorized resources and expose sensitive information. This issue only affected Ubuntu 16.04 ESM. (CVE-2017-5223)

Sehun Oh discovered that PHPMailer was not properly processing untrusted non-local file attachments, which could lead to an object injection. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 16.04 ESM. (CVE-2018-19296)

Elar Lang discovered that PHPMailer was not properly escaping file attachment names, which could lead to a misinterpretation of file types by entities processing the message. An attacker could possibly use this issue to bypass attachment filters. This issue was only fixed in Ubuntu 16.04 ESM and Ubuntu 20.04 ESM. (CVE-2020-13625)

It was discovered that PHPMailer was not properly handling callables in its validateAddress function, which could result in untrusted code being called should the global namespace contain a function called 'php'. An attacker could possibly use this issue to execute arbitrary code. This issue was only fixed in Ubuntu 20.04 ESM and Ubuntu 22.04 ESM. (CVE-2021-3603)

Record
USN-5956-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
phpmailer/phpmailer
Packagist
5.0.0 up to 5.2.20
5.2.20
php-phpmailer
Alpine:v3.2
before 5.2.4-r0
5.2.4-r0
php-phpmailer
Alpine:v3.3
before 5.2.4-r0
5.2.4-r0
php5-phpmailer
Alpine:v3.4
before 5.2.0-r1
5.2.0-r1
php5-phpmailer
Alpine:v3.5
before 5.2.4-r1
5.2.4-r1
phpmailer/phpmailer
Packagist
5.0.0 up to 5.2.20, plus listed versions
v5.2.10v5.2.11v5.2.12v5.2.13v5.2.14
Show 12 moreShow less
v5.2.15v5.2.16v5.2.17v5.2.18v5.2.19v5.2.2v5.2.4v5.2.5v5.2.6v5.2.7v5.2.8v5.2.9
5.2.20
libphp-phpmailer
Ubuntu:Pro:16.04:LTS
before 5.2.14+dfsg-1ubuntu0.1~esm1, plus listed versions
5.2.10+dfsg-15.2.14+dfsg-15.2.14+dfsg-1build1
5.2.14+dfsg-1ubuntu0.1~esm1
libphp-phpmailer
Ubuntu:Pro:18.04:LTS
before 5.2.14+dfsg-2.3+deb9u2ubuntu0.1~esm1, plus listed versions
5.2.14+dfsg-2.35.2.14+dfsg-2.3+deb9u1build0.18.04.15.2.14+dfsg-2.3+deb9u2build0.18.04.1
5.2.14+dfsg-2.3+deb9u2ubuntu0.1~esm1
libphp-phpmailer
Ubuntu:Pro:20.04:LTS
before 6.0.6-0.1ubuntu0.1~esm1, plus listed versions
6.0.6-0.1
6.0.6-0.1ubuntu0.1~esm1
libphp-phpmailer
Ubuntu:Pro:22.04:LTS
before 6.2.0-2ubuntu0.1~esm1, plus listed versions
6.2.0-2
6.2.0-2ubuntu0.1~esm1

Public exploits

Links only. Every CVE stores no exploit code.

History

History
WhenChangedSources
2026-11-03aliasesEUVD
2026-11-02createdCVE List, Exploit-DB, GitHub Advisories, Metasploit, NVD, OSV

References

Show 24 moreShow less
MoveEnter Open