PHPMailer远程代码执行漏洞(CVE-2021-3603)
发布时间 2021-06-210x00 漏洞概述
CVE ID | CVE-2021-3603 | 时 间 | 2021-06-21 |
类 型 | RCE | 等 级 | 高危 |
远程利用 | 是 | 影响范围 | PHPMailer <= 6.4.1 |
攻击复杂度 | 高 | 可用性 | 高 |
用户交互 | 无 | 所需权限 | 无 |
PoC/EXP | 已公开 | 在野利用 | 否 |
0x01 漏洞详情

PHPMailer是一个用于发送电子邮件的开源PHP库,可以设定发送邮件地址、回复地址、邮件主题、html网页及上传附件,使用起来非常方便,目前已被全球超过900万的用户使用。
2021年06月16日,PHPMaile发布安全公告,修复了PHPMailer中的2个远程代码执行漏洞(CVE-2021-3603和CVE-2021-34551),远程攻击者可以利用这些漏洞在系统上执行任意代码。
PHPMailer远程代码执行漏洞(CVE-2021-3603)
该漏洞的CVSSv3评分为8.1。validateAddress()函数用于验证电子邮件地址,如果validateAddress()的$patternselect参数被设置为'php'(默认值,由PHPMailer::$validator定义),并且全局命名空间包含一个名为php的函数,它将优先于同名的内置验证器被调用。远程攻击者可以通过构造恶意请求来利用此漏洞,从而可以在目标系统上执行任意代码。该漏洞已经在PHPMailer 6.5.0中通过拒绝使用简单字符串作为验证器函数名称来缓解。
PHPMailer远程代码执行漏洞(CVE-2021-34551)
如果setLanguage()方法的$lang_path参数未过滤用户输入且被设置为UNC路径,攻击者可以通过从该UNC路径加载文件来远程执行脚本或代码。此漏洞仅存在于可解析 UNC 路径的系统,通常仅适用于 Microsoft Windows。
影响范围
PHPMailer <= 6.4.1
0x02 处置建议
目前此漏洞已经修复,建议及时升级更新至PHPMailer 6.5.0。
下载链接:
https://github.com/PHPMailer/PHPMailer
通用安全建议
对代码进行安全审计,尽早检测潜在的安全漏洞,并增强代码逻辑性。
对用户的输入进行过滤或转义,避免参数可控。
用户应定期更新软件、程序和应用程序,确保应用程序是最新的,以保护系统免受漏洞利用。
0x03 参考链接
https://github.com/PHPMailer/PHPMailer/blob/master/SECURITY.md
https://github.com/PHPMailer/PHPMailer/commit/45f3c18dc6a2de1cb1bf49b9b249a9ee36a5f7f3
https://www.huntr.dev/bounties/1-PHPMailer/PHPMailer/
https://nvd.nist.gov/vuln/detail/CVE-2021-3603
0x04 时间线
2021-06-16 PHPMailer发布安全公告
2021-06-21 VSRC发布安全通告
0x05 附录
CVSS评分标准官网:http://www.first.org/cvss/



京公网安备11010802024551号