こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
03/31/2022にSpring Frameworkの脆弱性(Spring4Shell / SpringShell : CVE-2022-22965)が公開されました。PoCも公開されており、年末に発生したLog4Shellの脆弱性と比較されている方も多く見られ、情報も錯綜しています。今回は、こちらで脆弱性の情報等を纏めて取り上げていきます。
社内での内部資料も兼ねています。情報は逐次更新します。
【2022/04/06 更新】各ベンダ対応を追記しました。
【2022/04/06 14:00 更新】攻撃情報を追記しました。
PoC
Spring4Shell (CVE-2022-22965) PoC
Spring Frameworkとは
Spring Framework(Spring)はVMWareが開発を牽引する、Javaプラットフォーム向けのOSSのアプリケーションフレームワークです。
Priority
CVE番号 | 影響するバージョン | 一次情報源 | Priority | CVSS Score / CVSS Vector |
---|---|---|---|---|
CVE-2022-22965 | 発現条件を参照 | Spring Framework RCE, Early Announcement CVE-2022-22965: Spring Framework RCE via Data Binding on JDK 9+ | VMWare: 9.8 Critical Red Hat: 8.1 Important | VMWare: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H |
オフィシャルな情報源
時系列
- 2022/03/29(GMT)深夜: AntGorup FG セキュリティラボのcodeplutos氏とmeizjm3i氏によりVMWareに問題の報告がされる。
- 2022/03/30(GMT): アップデートのリリースとCVE-idがアサインされる前に情報がリークされる
- 2022/03/31: Exploitコードがインターネット上で既に出回っている事が報告される
発現条件(情報が出次第逐次更新します)
この脆弱性が発現するには、今のところ判明している条件としては、次の条件全てに当てはまる必要があります
ただし、この脆弱性自体はより一般的なため、上記条件以外でも脆弱性が発現する可能性があります。
- JDK 9以上で実行
- Apache TomcatをServletコンテナとして使用している
- 従来のWARパッケージ化されている
- spring-webmvc 或いは spring-webflux に依存している
- Spring Frameworkのバージョンが以下のいずれかに当てはまる
- 5.3.0-5.3.17
- 5.2.0-5.2.19
- もっと古い既にサポートされなくなっているバージョン
概要
JDK 9以上で動いているSpring MVC又はSpring WebFluxアプリケーションにリモートコード実行(RCE)の脆弱性が見つかりました。既にエクスプロイトも出回っています。
エクスプロイトが動くには、アプリケーションがTomcat上でWARデプロイメントで動作している必要があります。アプリケーションがSpring Bootで実行可能なjarファイル(こちらがデフォルトです)で動いている場合には、エクスプロイトによる攻撃は出来ません。しかしながら、未だ知られていないだけで他のエクスプロイトによる攻撃が可能であるかもしれません。
このエクスプロイトを実行するには「発現条件」で記載した条件を満たす必要があります。
各ベンダ対応
- Red Hat: RHSB-2022-003 Spring Remote Code Execution – (CVE-2022-22963, CVE-2022-22965) 。CVE-2022-22965(Spring4Shell)に該当するRed Hat製品の一覧があります。CVE-2022-22963(Spring4Shellでは無い)の方もCriticalとして上げています。
- Microsoft: SpringShell RCE vulnerability: Guidance for protecting against and detecting CVE-2022-22965。Azure Firewall Premiumを使っているユーザは攻撃を防ぐルールが追加されたみたいなので必見。
- Cisco: シスコ製品に影響を与えるSpring Frameworkの脆弱性:2022年3月。幾つかの製品が影響を受ける様で、現在も未だ調査中のようです。適宜更新されていくはずですので、詳しくはCiscoのサイトを確認してください。影響を受けないことが判明したもの・修正情報なども記載されており、逐次更新されています。
- Microfocus: 脆弱性の概要はこちらに載っています。どの製品が影響を受けるのかのURL(検索クエリ)も記載されており、情報は逐次更新されています。
ニュース記事・リンク等
- Spring Frameworkの脆弱性 CVE-2022-22965(Spring4shell)についてまとめてみた (piyolog)。さすがpiyologさん、わかりやすく時系列に纏まっています。
- Spring4Shell Details and Exploit Analysis (Cyber Kendra)
- Spring Core on JDK9+ is vulnerable to remote code execution (praetorian)
- 「Spring Core」にゼロデイ脆弱性「Spring4Shell」の指摘 (Security NEXT)
- Javaアプリフレームワーク「Spring」に複数の脆弱性報告–未確認情報の交錯も (ZDNet Japan)
- Two different “VMware Spring” bugs at large – we cut through the confusion (naked Security by Sophos)
- Spring4Shell: Zero-Day Vulnerability in Spring Framework (CVE-2022-22965)
- cve-2022-22965 Spring4Shell の影響調査(DevelopersIO)。クラスメソッドさんの記事。めっちゃ参考になります。
本攻撃の悪用等
Check Point Resarchのブログによると、全世界で攻撃が拡大しているため注意が必要な様です。
注意
本脆弱性ですが、丁度同時に出たSpring Cloud Functionの脆弱性: CVE-2022-22963: Remote code execution in Spring Cloud Function by malicious Spring Expressionとは無関係のものになります。混同しやすいので注意が必要です。
対処方法
各ディストリビューションから案内が出ている場合には、そちらの指示に従ってください。
- Spring Frameworkを下記のバージョンのいずれかに更新してください。
- 5.3.18以上
- 5.2.20以上
- Spring BootもSpring Frameworkに依存しているため、下記のバージョンのいずれかに更新してください。
- 2.6.6以上
- 2.5.12以上
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
- Red Hat Enterprise Linux/CentOS
- Ubuntu
- SUSE/openSUSE
[参考]
Spring Framework RCE, Early Announcement
CVE-2022-22965: Spring Framework RCE via Data Binding on JDK 9+
日々のメモを更新しています。
セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。