Spring MVC 反射型文件下載漏洞風險通告

發布時間 2020-02-04

漏洞編號和級別


CVE編號:CVE-2020-5398,危險級別:高危,CVSS分值:7.5


影響版本


Spring Framework:


5.2.0 to 5.2.2

5.1.0 to 5.1.12

5.0.0 to 5.0.15


漏洞概述


Pivotal Software Spring Framework是美國Pivotal Software公司的一套開源的Java、JavaEE應用程序框架。該框架可幫助開發人員構建高質量的應用。


近日,Pivotal Software(Spring系列)官方發布 Spring Framework 存在 RFD(反射型文件下載漏洞)的漏洞報告,此漏洞為攻擊客戶端的漏洞,官方將漏洞嚴重程度評為高。報告指出,當響應中設置了“Content-Disposition”頭且filename屬性是用戶可控時容易受到RFD攻擊。攻擊應滿足以下所有條件才可成功:


1、響應header是通過org.springframework.http.ContentDisposition進行添加的


2、文件名是通過以下方式之一設置的:


ContentDisposition.Builder#filename(String)

ContentDisposition.Builder#filename(String, US_ASCII)


3、filename的值來自用戶提供的輸入


4、應用程序未清除用戶提供的輸入


5、攻擊者已將下載的響應內容中注入惡意命令


攻擊者可利用RFD漏洞,結合社工等方式,讓用戶下載一個惡意文件并執行,從而危害用戶的終端安全。


漏洞驗證


暫無POC/EXP。


修復建議


目前廠商已發布升級補丁以修復漏洞,請受影響的用戶升級至 Spring Framework 5.2.3,5.1.13 或 5.0.16 版本:https://github.com/spring-projects/spring-framework。


或者采用正確配置:


1、應用程序未設置“ Content-Disposition”響應header。


2、響應header不是通過org.springframework.http.ContentDisposition進行添加的


3、文件名是通過以下方式之一設置的:


ContentDisposition.Builder#filename(String, UTF_8)

ContentDisposition.Builder#filename(String, ISO_8859_1)


4、filename的值不是來自用戶提供的輸入


5、filename來自用戶提供的輸入,但由應用程序清除。


參考鏈接


https://pivotal.io/security/cve-2020-5398