Spring Frameworkの脆弱性(Spring4Shell / SpringShell : CVE-2022-22965)

こんにちは。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

オフィシャルな情報源

Spring Framework RCE, Early Announcement

時系列

  1. 2022/03/29(GMT)深夜: AntGorup FG セキュリティラボのcodeplutos氏とmeizjm3i氏によりVMWareに問題の報告がされる。
  2. 2022/03/30(GMT): アップデートのリリースとCVE-idがアサインされる前に情報がリークされる
  3. 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ファイル(こちらがデフォルトです)で動いている場合には、エクスプロイトによる攻撃は出来ません。しかしながら、未だ知られていないだけで他のエクスプロイトによる攻撃が可能であるかもしれません。

このエクスプロイトを実行するには「発現条件」で記載した条件を満たす必要があります。

各ベンダ対応

ニュース記事・リンク等

本攻撃の悪用等

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以上

対応フローチャート

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください


日々のメモを更新しています。

セキュリティ関係ニュースを更新しています。個別で情報出せるようになる前の簡単な情報・リンクなんかも載せていきます。

前へ

containerdの脆弱性(Moderate: CVE-2022-23648)と新バージョン(1.4.13, 1.5.10, 1.6.1)

次へ

RHEL9での変更点(セキュリティ編:Part2 SELinuxのパフォーマンス向上について)