
2025年6月、Spring Frameworkに中程度のセキュリティ脆弱性(CVE-2025-41234)が報告されました。これは、ユーザーが指定したファイル名を含むHTTPヘッダに不備があると、意図しないファイルをダウンロードさせられる「Reflected File Download(RFD)」攻撃の引き金となる可能性があるというものです。
対象となるのは、Spring Frameworkバージョン6.0.5以降、6.1系および6.2系の一部バージョンで、CVSSスコアは6.5。比較的深刻な問題といえます。
RFD攻撃とは何か?
RFD攻撃とは、ユーザーがWebサイト上のリンクをクリックすることで、実行形式のファイルをダウンロード・実行してしまうように仕向ける攻撃手法です。一見すると正当なファイルのように見えるため、ユーザーが違和感を覚えずに開いてしまうリスクがあります。
今回のSpring Frameworkの脆弱性は、以下の条件がすべてそろうと発生します:
- Springの
org.springframework.http.ContentDisposition
クラスで”Content-Disposition”ヘッダを生成している - ファイル名を
ContentDisposition.Builder#filename(String, Charset)
で指定し、かつ非ASCII文字が含まれている - ファイル名の値がユーザーの入力から直接取得されており、サニタイズされていない
- レスポンスのコンテンツに、攻撃者が細工した悪意あるコマンドが含まれている
どのバージョンが影響を受けるのか?
影響を受けるのは以下のバージョンです
対象バージョン | 修正済バージョン |
---|---|
6.2.0 ~ 6.2.7 | 6.2.8(OSS) |
6.1.0 ~ 6.1.20 | 6.1.21(OSS) |
6.0.5 ~ 6.0.28 | 6.0.29(商用) |
なお、これより古い未サポートのバージョンは対象外とされています。
どうすればリスクを回避できる?
この問題に該当しない、または既に対処しているケースは以下の通りです:
- “Content-Disposition”ヘッダ自体を使用していない
- ヘッダの生成に
ContentDisposition.Builder
を使用していない filename(String)
あるいはfilename(String, ASCII)
でファイル名を指定している- ファイル名をユーザー入力から取得していない、または取得していてもサニタイズ済み
- ダウンロードされるファイルの中身に、攻撃者が手を加えることができない
システム担当者へのアドバイス
もし上記の影響を受けるバージョンを使っている場合は、以下の対応が必要です:
- Spring Framework 6.2.xを使用している場合は、6.2.8へアップグレード
- 6.1.xを使用している場合は、6.1.21へアップグレード
- 商用利用で6.0.xを使っている場合は、6.0.29へのアップグレードを
アップデートを行うことで、ユーザー入力をもとに生成されるファイル名に起因するRFD攻撃のリスクを排除することができます。