PhPMailer库中的批评缺陷将数百万个网站面临风险
PHPMailer中最关键的远程远程执行漏洞,最广泛使用的PHP电子邮件发送库之一,可能会使数百万个网站面临黑客攻击的风险。
该缺陷由名为Dawid Golunski的安全研究员发现,并且在PHPMailer 5.2.18中包含了初始修复,周六发布。但是,事实证明,补丁是不完整的并且可以绕过。
PHPMailer库直接或间接使用许多内容管理系统(CMS),包括WordPress,Joomla和Drupal。如果库不包含在其核心代码中,则它可能是单独的模块或可以与第三方加载项捆绑在一起。
因此,缺陷的影响可能会因网站到网站而异。例如,Joomla Security团队确定依赖于PHPMailer的Joomla Jmail类具有额外的验证,使得利用漏洞不切实际。
缺陷是由于发件人电子邮件地址输入的验证不足引起的,并且可以允许攻击者在SendMail程序的上下文中允许将在Web服务器上执行的shell命令。
但是,成功的开发需要在网站上存在使用phpmailer发送电子邮件的网站形式,并允许输入自定义发件人电子邮件地址 - 从电子邮件标题中出现的地址。它不清楚如何常见的这种配置是,因为通常Web表单具有预定义的发件人电子邮件,只允许用户将自己的电子邮件地址作为收件人键。
“核心Joomla API中的所有位置,发送邮件使用全局配置中设置的发件人地址,不允许在其他地方设置用户输入,”Joomla Security团队在咨询中表示。“但是,捆绑单独版本的PHPMailer或不使用Joomla API发送电子邮件的扩展可能很容易受到此问题的影响。”
WordPress开发人员达到了类似的结论,注意到WordPress核心代码使用的内部WP_MAIL()函数不受影响,因此不使用易受攻击的PHPMailer功能。理论上应该正确地影响WP_mail()的第三方插件,但是对特定插件的影响仍在调查中。
“即将到来的4.7.1版本将包含这些问题的缓解,”WordPress Lead Developer Dion Hulse表示。“我们”只致力于使用WordPress运送安全库 - 无论我们是否使用该功能。“
Drupal Security团队还为此问题推出了安全咨询,并将其标记为至关重要,即使耳核核心代码不受缺陷的影响。
“鉴于这个问题的极度关键性和其释放的时间我们正在发布公共服务公告,以提醒可能受到影响的Drupal网站维护者,”该团队表示。
由于可以绕过初始修复,并且可以使用公用漏洞代码,漏洞具有零天状态 - 它是公开的和未被删除的。此外,由于影响因网站到网站而异,因此根据PHPMailer如何使用,网站管理员不简单的方法可以在没有彻底评估的情况下减轻问题。
如果他们在其网站的网站代码中直接使用phpmailer,他们应该一旦发布就会将库升级到最新修补的版本。它们还应确定其网站的任何一个网站的联系人,反馈,注册,电子邮件重置和其他表单是否在PHPMailer的易受攻击中发送了电子邮件,以及潜在攻击者可以输入发件人电子邮件地址。
如果它们使用内容管理系统,应检查其支持网站以确定它是否受到其默认配置的影响。然后,他们应该为他们安装的任何第三方插件或模块的任何第三方插件或模块都致讨它们的影响,这可能会自己使用phpmailer。