一、綜述
近日,VMware Tanzu發布安全公告,公布了一個存在於Spring Framework中的反射型文件下載(Reflected File Download,RFD)漏洞CVE-2020-5421。CVE-2020-5421 可通過jsessionid路徑參數,繞過防御RFD攻擊的保護。先前針對RFD的防護是為應對 CVE-2015-5211 添加的。
攻擊者通過向用戶發送帶有批處理腳本擴展名的URL,使用戶下載並執行文件,從而危害用戶系統。
官方已發布修復了漏洞的新版本。
Spring Framework是 Java 平台的一個開源全棧應用程序框架和控制反轉容器實現,一般被直接稱為 Spring。
二、影響范圍
受影響產品版本
- Spring Framework 5.2.0 – 5.2.8
- Spring Framework 5.1.0 – 5.1.17
- Spring Framework 5.0.0 – 5.0.18
- Spring Framework 4.3.0 – 4.3.28
- 以及其他已不受支持的版本
不受影響產品版本
- Spring Framework 5.2.9
- Spring Framework 5.1.18
- Spring Framework 5.0.19
- Spring Framework 4.3.29
三、解決方案
官方已發布修復了漏洞的新版本,建議相關用戶盡快升級進行防護。
四、項目整改示例
涉及相關jar包:
更換為:
涉及配置文件:spring-mvc.xml
<!-- 支持返回json(避免IE在ajax請求時,返回json出現下載 ) --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <ref bean="mappingJacksonHttpMessageConverter"/> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
更改為:
<!-- 支持返回json(避免IE在ajax請求時,返回json出現下載 ) --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/> <ref bean="mappingJacksonHttpMessageConverter"/> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean>
完畢!