CVE-2025-41234: Spring Framework vulnerable to a reflected file download (RFD)
In Spring Framework, versions 6.0.x as of 6.0.5, versions 6.1.x and 6.2.x, an application is vulnerable to a reflected file download (RFD) attack when it sets a “Content-Disposition” header with a non-ASCII charset, where the filename attribute is derived from user-supplied input.
Specifically, an application is vulnerable when all the following are true:
- The header is prepared with
org.springframework.http.ContentDisposition
. - The filename is set via
ContentDisposition.Builder#filename(String, Charset)
. - The value for the filename is derived from user-supplied input.
- The application does not sanitize the user-supplied input.
- The downloaded content of the response is injected with malicious commands by the attacker (see RFD paper reference for details).
An application is not vulnerable if any of the following is true:
- The application does not set a “Content-Disposition” response header.
- The header is not prepared with
org.springframework.http.ContentDisposition
. - The filename is set via one of:
ContentDisposition.Builder#filename(String)
, orContentDisposition.Builder#filename(String, ASCII)
- The filename is not derived from user-supplied input.
- The filename is derived from user-supplied input but sanitized by the application.
- The attacker cannot inject malicious content in the downloaded content of the response.
References
- github.com/advisories/GHSA-6r3c-xf4w-jxjm
- github.com/spring-projects/spring-framework
- github.com/spring-projects/spring-framework/commit/f0e7b42704e6b33958f242d91bd690d6ef7ada9c
- github.com/spring-projects/spring-framework/issues/35034
- nvd.nist.gov/vuln/detail/CVE-2025-41234
- spring.io/security/cve-2025-41234
Code Behaviors & Features
Detect and mitigate CVE-2025-41234 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →