2022年3月31日、Spring Frameworkに致命的な脆弱性が確認され、修正版が公開されました。ここでは関連する情報をまとめます。
1.何が起きたの?
- JDK9以上で実行されるSpringMVC、SpringWebFluxでリモートコード実行が可能な脆弱性(CVE-2022-22965)が確認された。脆弱性の通称にSpring4shellまたはSpringShellが用いられている。
- Spring FrameworkはJavaで採用される主流なフレームワークの1つのため、Javaで実行されるWebアプリケーションで利用している可能性がある。
- 2022年3月31日時点で脆弱性のExploitコードが出回っており、関連するインターネット上の活動が既に報告されている。
2.脆弱性を悪用されると何が起きるの?
- 脆弱性を悪用された場合、リモートから任意コード実行が行われることで、機密情報の窃取やサーバーののっとり等の影響を受ける恐れがある。
3.影響を受ける条件は何?
次の条件が全て成立する場合、脆弱性の影響を受ける恐れがある。
- 実行される環境がJDK9以上
- 影響を受けるSrping Frameworkバージョンを利用
- Apache Tomcatをサーブレットコンテナとして利用
- WARファイルとしてパッケージ化
- spring-webmvcまたはspring-webluxとの依存関係あり
これらの条件記載は2022年3月31日時点のもの。今後検証や評価等で新たな脆弱性悪用の方法が確認される可能性があるため公式の最新情報を参照すること。
影響を受けるバージョン
Spring Framework | 5.3.0~5.3.17 5.2.0~5.2.19 |
---|
- サポートが終了している旧バージョンも影響を受ける
特に注意すべき環境
条件に該当する環境で次のいずれかに該当する場合、攻撃を既に受けている可能性があり、パッチ適用以外の影響(侵害の有無等)も含めた対応を強く推奨。
- WAF等のセキュリティ対策製品を利用していない
- インターネット上で公開しており第三者が容易にアクセスすることが可能となっている
4.脆弱性にどう対応すれば良いの?
緊急性の高い脆弱性であることから、詳細把握と並行(あるいは優先)して攻撃影響を緩和する対応を行うことが推奨される。
- Javaを利用するWebアプリケーションでリスク受容が可能かを最優先で評価し、必要に応じて低減策(アウトバウンド通信の制限、一時的なサーバー停止など)を講じる。
- 影響を受ける資産を確認する(関係者へ問合せをかける)。影響を受ける場合は速やかに影響評価を行い適切な対応策(最新版への更新を強く推奨)する。
- ソフトウエアの更新と合わせて攻撃による影響有無を確認する。(SOCなど担当するチームで適切に処理されているかを確認する。)
対応① 最新版への更新
- 脆弱性へ対応したバージョンに更新する。
利用しているバージョン | 推奨対応策 |
---|---|
Spring Framework 5.3 | 5.3.18以上に更新 |
Spring Framework 5.2 | 5.2.20以上に更新 |
- Spring Bootを利用している場合はSpring Framework 5.3.18に依存しているため脆弱性対応のバージョンに更新する。
利用しているバージョン | 推奨対応策 |
---|---|
Spring Boot 2.6 | 2.6.6以上に更新 |
Spring Boot 2.5 | 2.5.12以上に更新 |
対応② 回避策の適用
- 更新がすぐに行えない等、最新版をすぐに利用できない場合は
@ControllerAdvice
を用いた設定変更(WebDataBinder
に対して悪用可能なフィールドパターンをブラックリストに追加)による対応が紹介されている。 - Springのセキュリティアドバイザリ(参照情報記載)ではこの回避策では抜けが生じる可能性を含むことを指摘しており、より確実な対応方法も記載。
5.既に悪用はされているの?
- 2022年3月31日時点での具体的な被害報告はpiyokangoはまだ確認していない。
- 複数の観測情報から脆弱性に関連したスキャン活動の報告がある。
- Miraiで悪用されているとの報告がある。
6.脆弱性の詳細を知りたい
CVE | CVE-2022-22965 |
---|---|
深刻度 | Critical (VMware評価) |
CVSSv3(base) | 9.8 (VMware評価) |
種類 | RCE |
報告日 | 2022年3月29日 |
修正版公開日 | 2022年3月31日 |
報告者 | AntGroup FGのcodeplutos氏、meizjm3i氏 |
脆弱性の通称 | Spring4Shell、SpringShell |
当時CVE-2022-22965に関する公式情報が出ておらず、さらに同時期に出た別プロダクトの脆弱性等の情報と混同することで一時混乱が生じたが、次の2件と今回の脆弱性は関係ない。
参照情報
- Spring Framework RCE, Early Announcement (Spring)
- CVE-2022-22965: Spring Framework RCE via Data Binding on JDK 9+ (VMware)
- Spring4Shell Details and Exploit Analysis (Cyber Kendra)
- Spring4Shell: Security Analysis of the latest Java RCE '0-day' vulnerabilities in Spring (Lunasec)
- Spring4Shell: Zero-Day Vulnerability in Spring Framework (CVE-2022-22965) (Rapid7)
- CVE-2022-22965: Spring Core Remote Code Execution Vulnerability Exploited In the Wild (SpringShell) (PaloAlto)
- Spring Core on JDK9+ is vulnerable to remote code execution (praetorian)
- springcore-0day-en (tweedge)
- WAF mitigations for Spring4Shell (Cloudflare)
- Spring Cloud Function の脆弱性(CVE-2022-22963)について (Securesky Technology)
- K24912123: Mitigate the Spring Framework (Spring4Shell) and Spring Cloud vulnerabilities with the BIG-IP system (F5)
- Spring Framework insecurely handles PropertyDescriptor objects with data binding (CERT/CC)
- Spring Frameworkの任意のコード実行の脆弱性(CVE-2022-22965)について (JPCERT/CC)
- CVE-2022-22965 Spring Framework に対するマイクロソフトの対応 (Microsoft)
- 【2022/04/07更新】Spring Frameworkの脆弱性(CVE-2022-22965)に対する各UTM/IPS/WAFの対応状況について (Knowledge Stare)
更新履歴
- 2022年4月1日 AM 新規作成