サービスに関する
お問い合わせ

緊急対応 専用窓口

セキュリティの緊急事態が発生したらご遠慮なくお問い合わせください。ご相談は無料です。

セキュリティの
学び場

SHIFT SECURITY セキュリティの学び場 ニュース解説 Spring Framework に特定条件で Java コードが実行される脆弱性

Spring Framework に特定条件で Java コードが実行される脆弱性

Spring Framework に特定条件で Java コードが実行される脆弱性
目次
  • 今回の解説ニュース
  • 今回の Spring Framework の脆弱性はどのような影響を及ぼすのか
  • 今回の「Spring4Shell」と、多くの被害を生んだ「Log4Shell」との違いは?

こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字に起こしご紹介しています。

今回の解説ニュース

Spring Frameworkに不適切なデータバインディング処理による任意コード実行の脆弱性

独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は4月1日、Spring Frameworkにおける不適切なデータバインディング処理による任意コード実行の脆弱性について「JVN」で発表した。(記事はこちら)

【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】

CVE-2022-22965が割り当てられている、任意のJavaコードが実行できるJavaフレームワークの脆弱性について発表されています。通称「Spring4Shell」とも呼ばれている、本脆弱性の内容や、昨年末に公表されたLog4jとの違いについて説明します。

今回の脆弱性は、Java言語でWebアプリケーションなどを作成するために用いられるフレームワーク「Spring Framework」のバージョン5.3.0から5.3.17と、5.2.0から5.2.19に存在しています。攻撃者に脆弱性を悪用されることにより、システム内で任意のJavaコードが実行される可能性があるということです。

対策として、対策済みバージョンとしてリリースされたSpring Framework 5.3.18および5.2.20にアップデートする事が必要です。アップデートが難しい場合の回避策として、Tomcatのアップグレード、Java 8へのダウングレード、使用可能なフィールドの制限が挙げられています。なお、CVE-2022-22963が割り当てられている、Spring Cloud Functionで任意のコードが実行できる脆弱性とは別の脆弱性であるということです。

今回の Spring Framework の脆弱性はどのような影響を及ぼすのか

今回の脆弱性は、システム内で任意のJavaコードが実行される可能性があると言われていますので、システムが乗っ取られたり、マルウェアの感染に悪用されたりする可能性がありますが、攻撃を成功させるためには複数の条件が必要であることが言われています。少し技術的な内容になりますが、できるだけわかりやすく説明します。

一般的に、任意のコードが実行できる脆弱性は、脆弱性の存在しているソフトウェアに割り当てられている権限で、任意の操作ができることになります。今回のCVE-2022-22965では、Spring Frameworkと連携するJavaの実行環境であるTomcatが作成するログの設定をJavaコードで書かれたファイルとして出力するように変更できるため、システム内で任意のJavaコードが実行できることになります。

ただし、今回の脆弱性を悪用するためは「JDK 9以上を使用している」「Apache Tomcatをサーブレットコンテナとして使用している」「WAR形式でデプロイされている」「プログラムがspring-webmvcあるいはspring-webfluxに依存している」ことが必要と言われています。あくまでも現時点での内容であり、他の条件でも攻撃が成功する可能性があるため、今後公開される情報も注視してください。

今回の「Spring4Shell」と、多くの被害を生んだ「Log4Shell」との違いは?

Apache Log4jの脆弱性であるLog4Shellと、今回のSpring Frameworkの脆弱性であるSpring4Shellは、内容も影響も異なる脆弱性です。さらに技術的な内容になりますが、頑張って最後まで読んでください。

2021年末に多くの被害を生んだ Log4Shell
CVE-2021-44228が割り当てられているApache Log4jの脆弱性であるLog4Shellは、昨年末に公表され、数日内に大量のサイバー攻撃やマルウェア感染に悪用され、多くの被害を生みました。原因として、Log4jがインストールされている多くの環境で簡単に悪用できることが挙げられています。
今回の Spring4Shell はそれを上回る被害が想定されたが
それに対してSpring4Shellは、Log4j以上に多くの環境で使われており、公表当時はLog4Shell以上に影響が広範囲に及ぶと考えられていました。しかし、先ほど説明した通り、攻撃が成功するための条件が厳しく、マルウェアが直ちに悪用できるような脆弱性ではないことが徐々にわかりはじめました。
攻撃成功条件が厳しい事からマルウェアが悪用できる脆弱性ではない
具体的には、攻撃によって動作するClassLoaderによってシステムの挙動が異なるため、Spring Bootのように、あらかじめ組み込まれたTomcatでは、脆弱性があるSpring Frameworkとは別の制限されたClassLoaderが呼び出されるため、Spring4Shellの直接的な影響を受けることはありません。ただし、脆弱性の本質的な問題とは異なりますので、注意が必要です。

今回は、Spring4Shellの脆弱性と、現時点で想定される影響範囲についてお届けしました。今後もSpring4Shellの追加情報がありましたら、再度取り上げていきます。

Voicyでニュース解説ラジオ配信中!

今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!

この記事の著者 セキュラジチーム

話題になっているセキュリティニュースやセキュリティに関する疑問を専門家の解説と個性豊かなパーソナリティたちがお送りしています。1日10分で、気軽にセキュリティの知識を深めることができます。放送は月曜・水曜・金曜の朝7時15分。

\ 記事をシェアする /

サービスに関する
お問い合わせ