Drupal 远程代码执行漏洞 (CVE-2019-6340)

来源:scanv2019.02.22

一、漏洞概述

1、简介

Drupal 是使用 PHP 语言编写的开源内容管理框架[1],Drupal 综合了强大并可自由配置的功能,能支持各种不同应用的网站项目。其 Drupal 社区是全球最大的开源社区之一, 在社区的维护下,Drupal 的代码在安全性、健壮性上具有世界较高水平。

2019/02/20,Drupal 安全团队披露了一个安全漏洞(CVE-2019-6340 /SA-CORE-2019-003)[2],如果网站开启了 RESTful Web Services(默认不开启)并允许

POST/PATCH 请求,在进行 REST API 操作的过程中,会将未经安全过滤的参数内容带入unserialize 函数而触发反序列化漏洞,进而导致任意代码执行。

2019/02/22,Seebug 平台收录了这个漏洞[3],知道创宇 404 实验室漏洞情报团队开始漏洞应急,复现了这个漏洞。

2、影响版本

Drupal < 8.6.10

Drupal < 8.5.12

二、漏洞复现

1、复现环境

  • Drupal6.5

2、环境搭建

Github 下载源码本地搭建[4]。

开启了 RESTful Web Services,且允许 POST / PATCH  请求。

为便于配置,安装 restui[5]插件。

开启以下几个扩展(默认不开启)。

选择一个路由,使其可以通过 RESTful API 来访问,配置如下:

设置允许匿名用户利用 POST 来访问该路由。

三、漏洞影响范围

通过 ZoomEye 网络空间探测引擎进行探测,以下为网络空间中装有 Drupal 的数量约为 465,349 台,其中美国安装数量最多,约有 215,948 台[6]。

四、防护方案

1、升级到 Drupal 最新版本(8.5.12 / 8.6.10) [7]

2、代码修复,在 lib/Drupal/Core/Field/Plugin/Field/FieldType/MapItem.php 和 modules/link/src/Plugin/Field/FieldType/LinkItem.php 中增加如下过滤:

3、使用第三方防火墙进行防护(如创宇盾[https://www.yunaq.com/cyd/])

4、技术业务咨询:

    知道创宇技术业务咨询热线 :

    400-060-9587(政府,国有企业)、028-68360638(互联网企业)

 

热门文章

关注知道创宇云安全

获取安全动态