您所在的位置: 首页 >
安全研究 >
安全通告 >
PHPMailer 远程代码执行漏洞
(CVE-2021-3603)
0x00 漏洞概述
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/
来源:维他命安全