Drupal远程代码执行漏洞CVE-2018-7600

2018年3月28日,流行的开源内容管理框架Drupal曝出一个远程代码执行漏洞,漏洞威胁等级为高危,漏洞对应的CVE编号为CVE-2018-7600。

千里百科

Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。其中Framework是指Drupal内核中的功能强大的PHP类库和PHP函数库,以及在此基础上抽象的Drupal API。Drupal综合了强大并可自由配置的功能,能支持从个人博客(Personal Weblog)到大型社区驱动(Community-Driven)的网站等各种不同应用的网站项目,应用十分广泛。并且Drupal的代码在安全性、健壮性上具有世界最高水平,使得国外包括美国白宫、美国商务部、纽约时报、SONY等多家政府以及机构采用建站,在国内,也有许多高校采用Drupal来建设网站。

漏洞描述

根据Drupal官方公告得知,Drupal 6.x、Drupal 7.x、Drupal 8.x均受此漏洞影响。据Drupal官方数据统计,全球有超过100万个网站正在使用Drupal,占已知CMS网站的大约9%,所以此漏洞的影响范围十分大。同时,该漏洞的利用难度几乎为零,攻击者不需要任何登录信息,只需要访问网站页面便可利用漏洞访问所有非公开数据或者控制使用Drupal站点。Drupal团队将此漏洞的严重程度风险评定分数设置为21分(评分范围:1-25),安全缺陷为非常严重。

从官方最新更新的版本进行分析,我们可以看到在7.58版本中/includes添加了一个新的request-sanitizer.inc文件,以及更新了部分之前已经存在的.inc文件。其中request-sanitizer.inc的‘santize’功能可以接收用户通过GET、POST、cookie输入的数据,并替换掉威胁操作。

其中,用于过滤危险操作的主函数是‘stripDangerousValues’函数,当输入数据是一个数组数据时,‘stripDangerousValues’函数用于检查数组中每个以#开头的参数的参数名。最终,函数将会把去除掉#的参数存入输入的数组中再返回到调用的函数中去。

此漏洞问题在于Drupal中的Drupal core可以接收数组对象作为响应参数,攻击者可以通过使用带有payload的数组参数来进行攻击,当然,这些数组没有经过过滤的。

影响版本

Drupal 6

Drupal 7

Drupal 8

修复建议

Drupal 6.x的修复参考以下网站:

https://www.drupal.org/project/d6lts

Drupal 7.x请升级到Drupal 7.5.8版本,

同时官方给出7.X补丁,若用户无法立即升级版本,请更新补丁,补丁地址为:

https://cgit.drupalcode.org/drupal/rawdiff/?h=7.x&id=2266d2a83db50e2f97682d9a0fb8a18e2722cba5

Drupal 8.5.x请升级到Drupal 8.5.1版本

同时官方给出8.5.X补丁,若用户无法立即升级版本,请更新补丁,补丁地址为:

https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f

Drupal 8.3.x和8.4.x版本官方已不进行维护,但此漏洞非常严重,官方此次也给出了对应补丁,补丁同8.5.x版本:补丁地址为:

https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f

由于Drupal 8.3.x和8.4.x版本官方已不进行维护,建议用户最好升级到官方维护的Drupal 8.3.9以及Drupal 8.4.6版本

友情提示

Drupal 8.0.x、Drupal 8.1.x、Drupal 8.2.x官方已不再维护,请各位用户升级到官方维护的版本。

参考链接

CVE链接:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7600

深信服解决方案

由于此漏洞尚未有可以利用的攻击代码,但是漏洞补丁已经发布,预计漏洞的攻击代码很快公开,千里目安全实验室将持续关注此次漏洞进展,最快速度给出完整的解决方案。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180329G1VOCU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券