报告编号: B6-2018-041301
报告来源: 360-CERT
报告作者: 360-CERT
更新日期: 2018-04-13
0x00 漏洞概述
日前,360-CERT监测到编号为CVE-2018-7600的Drupal远程代码执行漏洞的相关细节被发布。该漏洞最早于3月28日Drupal官方披露,但未公开相关漏洞细节,360-CERT及时发布预警报告并进行跟进。2018年4月13日,checkpoint安全团队发布了一份关于此漏洞(CVE-2018-7600)相关技术细节报告;目前相关漏洞利用代码已公开。
Drupal是一款开源的PHP内容管理系统,使用广泛,全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用。360-CERT认为此漏洞影响严重,且PoC可能会在短时间内被大量传播利用,建议使用Drupal开源内容管理系统的用户尽快进行更新。
0x01 PoC分析及技术细节
漏洞详情
Drupal Render API
对于#
会进行特殊处理。
其中#pre_render
在render之前操作数组,#post_render
接收render的结果并在其添加包装,#lazy_builder
用于在render过程的最后添加元素。
由于对于部分#
属性数组值,Drupal会通过call_user_func
的方式进行处理,导致任意代码执行。
漏洞触发流程
在core\modules\file\src\Element\ManagedFile.php
中,应用使用uploadAjaxCallback
对用户请求form进行处理,获取其中带有#的特殊变量
getValue
函数,遍历form 获取带有 #
属性的变量
在doRender
中调用call_user_func
造成了任意代码执行
调用栈如下
0x02 补丁分析及相关说明
补丁分析
最新版本对于请求GET、POST、COOKIE 进行了过滤处理
对所有带有#
的数组输入进行了检查和过滤
相关说明
对于Drupal 8.X 版本,可直接利用PoC进行远程代码执行攻击。
对于Drupal 7.X 版本,由于未找到相关上传点,目前PoC不可用。
0x03 时间线
2018-03-21 Drupal 官方发布公告将会在下周修复高危漏洞
2018-03-28 Drupal 官方发布补丁和安全公告
2018-03-29 360-CERT发布预警通告
2018-04-12 checkpoint安全团队发布相关漏洞细节
2018-04-13 360-CERT发布漏洞分析报告
0x04 参考链接
声明:本文来自360CERT,版权归作者所有。文章内容仅代表作者独立观点,不代表士冗科技立场,转载目的在于传递更多信息。如有侵权,请联系 service@expshell.com。