📋 漏洞概述
Spring官方最新发布了一个重要安全漏洞警告,影响Spring Framework多个版本。该漏洞可能导致反射文件下载(RFD)攻击,攻击者可以通过精心构造的请求诱使用户下载恶意文件。🔍 漏洞详情
漏洞原理
在Spring Framework中,当应用程序满足以下所有条件时,会存在RFD攻击漏洞:- 🎯 使用
org.springframework.http.ContentDisposition设置Content-Disposition响应头 - 📝 通过
ContentDisposition.Builder#filename(String, Charset)设置文件名 - 🔄 文件名值来源于用户输入
- ⚠️ 应用程序未对用户输入进行清理/校验
- 💥 攻击者能够在响应内容中注入恶意命令
不受影响的情况
如果满足以下任一条件,则应用程序不受此漏洞影响:- ✅ 应用程序不设置
Content-Disposition响应头 - ✅ 响应头不是通过
org.springframework.http.ContentDisposition设置 - ✅ 文件名通过以下方式设置:
ContentDisposition.Builder#filename(String)ContentDisposition.Builder#filename(String, ASCII)
- ✅ 文件名不来源于用户输入
- ✅ 应用程序对用户输入进行了适当的清理
- ✅ 攻击者无法在响应内容中注入恶意内容
🎯 影响范围
受影响的Spring Framework版本
⚠️ 注意: 更早的不受支持版本不受此漏洞影响
对应的Spring Boot版本
根据Spring Boot与Spring Framework的版本对应关系:🛠️ 修复方案
⚠️ 重要说明: 由于Spring Boot 3.4.7和3.3.13版本尚未发布,建议先通过引入spring-framework-bom的方式进行兼容性升级,确保Spring Framework版本得到及时修复。