🇰🇷 한글 설명
Spring Framework의 ContentDisposition 헤더 처리에서 비ASCII 문자셋과 함께 사용자 입력값이 검증되지 않을 때 발생하는 파일 다운로드 공격 취약점입니다. 공격자가 파일명에 악성 명령어를 주입하여 Reflected File Download(RFD) 공격을 수행할 수 있습니다.
💡 쉬운 설명
Spring으로 만든 웹 애플리케이션에서 파일을 다운로드할 때 파일명을 사용자가 입력한 값으로 설정하면, 공격자가 악의적인 코드를 숨겨서 공격할 수 있습니다. 파일명 입력값을 제대로 검증하지 않을 때 발생하는 문제입니다.
🇺🇸 원문 (English)
Description
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), or
* ContentDisposition.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.
Affected Spring Products and VersionsSpring Framework:
* 6.2.0 - 6.2.7
* 6.1.0 - 6.1.20
* 6.0.5 - 6.0.28
* Older, unsupported versions are not affected
MitigationUsers of affected versions should upgrade to the corresponding fixed version.
Affected version(s)Fix versionAvailability6.2.x6.2.8OSS6.1.x6.1.21OSS6.0.x6.0.29 Commercial https://enterprise.spring.io/ No further mitigation steps are necessary.
CWE-113 in `Content-Disposition` handling in VMware Spring Framework versions 6.0.5 to 6.2.7 allows remote attackers to launch Reflected File Download (RFD) attacks via unsanitized user input in `ContentDisposition.Builder#filename(String, Charset)` with non-ASCII charsets.
📍 영향받는 시스템
Spring Framework 6.2.0~6.2.7, 6.1.0~6.1.20, 6.0.5~6.0.28
⚔️ 공격 벡터
사용자가 제공한 파일명값을 검증 없이 비ASCII 문자셋과 함께 ContentDisposition 헤더에 포함시켜 악성 콘텐츠를 주입
🛡️ 대응 방법
Spring Framework를 6.2.8, 6.1.21, 6.0.29 이상으로 업그레이드
🔧 검증 코드
Spring Framework 버전이 6.2.8 이상, 6.1.21 이상, 6.0.29 이상이면 안전하고, 이보다 낮으면 취약함
grep -r 'org.springframework.framework' pom.xml build.gradle 2>/dev/null | grep -oE '6\.[0-2]\.[0-9]+'