近日,国家信息安全漏洞共享平台(CNVD)收录了Zeta Components Mail存在的远程代码执行漏洞(CNVD-2017-33788、对应CVE-2017-15806)。远程攻击者利用漏洞可通过构造恶意邮件在目标系统上执行任意代码。漏洞细节和利用代码已公开,近期被不法分子利用进行攻击尝试的可能性较大。
一、漏洞情况分析
Zeta Components是一个基于PHP 5实现的高质量的、通用的应用程序开发库,该项目曾于2010年5月加入Apache Incubator,但在2012年4月退出了Apache软件基金会。
安全研究人员在Zeta Components 的Mail库中发现一个远程代码执行(RCE)漏洞,该漏洞存在于Mail库中,ezcMailMtaTransport类中的send函数。 send() 函数调用 PHP mail() 来发送邮件, 通常PHP会使用sendmail作为默认的MTA,当mail()函数被调用的时候,它的第五个参数$additionalParameters将允许向sendmail传入额外的参数。在Mail库中,给$additionalParameters赋值的代码为:$additionalParameters = "-f{$mail->returnPath->email}”,如果攻击者通过伪造邮箱地址(例如:‘attacker@outlook.com -X/var/www/html/cache/exploit.php’),再将payload放在邮件正文中,sendmail就会将日志写入/var/www/html/cache/exploit.php文件中(向sendmail传入-Xlogfile,会写入日志到logfile),最终导致该文件会包含邮件正文中的payload,通过远程访问 #域名#/cache/exploit.php就能够执行payload。该漏洞利用需要满足三个条件:1、使用ezcMailMtaTransport;2、使用sendmail作为MTA;3、对ezcMailAddress未做正确转义。CNVD对上述漏洞的综合评级为“高危”。
二、漏洞影响范围
漏洞影响Mail 1.8.1及之前的版本。
三、漏洞修复建议
厂商已发布修复补丁,建议升级Mail到1.8.2:
https://github.com/zetacomponents/Mail
附:参考链接:
https://github.com/zetacomponents/Mail/releases
https://kay-malwarebenchmark.github.io/blog/cve-2017-15806-critical-rce-vulnerability/
http://www.cnvd.org.cn/flaw/show/CVE-2017-15806