> ## Documentation Index
> Fetch the complete documentation index at: https://blog.pig4cloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Spring cve

## 📋 漏洞概述

Spring官方最新发布了一个重要安全漏洞警告，影响Spring Framework多个版本。该漏洞可能导致**反射文件下载(RFD)攻击**，攻击者可以通过精心构造的请求诱使用户下载恶意文件。

## 🔍 漏洞详情

### 漏洞原理

在Spring Framework中，当应用程序满足以下**所有条件**时，会存在RFD攻击漏洞：

1. 🎯 使用 `org.springframework.http.ContentDisposition` 设置 `Content-Disposition` 响应头
2. 📝 通过 `ContentDisposition.Builder#filename(String, Charset)` 设置文件名
3. 🔄 文件名值来源于用户输入
4. ⚠️ 应用程序未对用户输入进行清理/校验
5. 💥 攻击者能够在响应内容中注入恶意命令

### 不受影响的情况

如果满足以下**任一条件**，则应用程序不受此漏洞影响：

* ✅ 应用程序不设置 `Content-Disposition` 响应头
* ✅ 响应头不是通过 `org.springframework.http.ContentDisposition` 设置
* ✅ 文件名通过以下方式设置：
  * `ContentDisposition.Builder#filename(String)`
  * `ContentDisposition.Builder#filename(String, ASCII)`
* ✅ 文件名不来源于用户输入
* ✅ 应用程序对用户输入进行了适当的清理
* ✅ 攻击者无法在响应内容中注入恶意内容

## 🎯 影响范围

### 受影响的Spring Framework版本

| 版本系列  | 受影响版本范围        | 状态   |
| ----- | -------------- | ---- |
| 6.2.x | 6.2.0 - 6.2.7  | 开源支持 |
| 6.1.x | 6.1.0 - 6.1.20 | 开源支持 |
| 6.0.x | 6.0.5 - 6.0.28 | 商业支持 |

⚠️ **注意**: 更早的不受支持版本不受此漏洞影响

### 对应的Spring Boot版本

根据Spring Boot与Spring Framework的版本对应关系：

| Spring Framework 修复版本 | 对应 Spring Boot 版本              | 可用性                                   |
| --------------------- | ------------------------------ | ------------------------------------- |
| 6.2.8                 | Spring Boot 3.4.7, 3.5.1 （未发布） | 开源版本                                  |
| 6.1.21                | Spring Boot 3.3.13 （未发布）       | 开源版本                                  |
| 6.0.29                | Spring Boot 3.0、3.1、3.2 (商业版本) | [商业支持](https://enterprise.spring.io/) |

## 🛠️ 修复方案

⚠️ **重要说明**: 由于Spring Boot 3.4.7和3.3.13版本尚未发布，建议先通过引入`spring-framework-bom`的方式进行兼容性升级，确保Spring Framework版本得到及时修复。

```xml theme={null}
<!-- Spring Framework -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-framework-bom</artifactId>
    <version>6.2.8</version> <!-- 或 6.1.21 -->
    <type>pom</type>
    <scope>import</scope>
</dependency>
```
