SCW アイコン
ヒーロー背景(区切りなし)
ブログ

Springライブラリの新規脆弱性:リスクの有無を確認する方法と対応策

Charlie Eriksen
2022年4月1日 発行
最終更新日: 2026年3月6日

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。 どちらの脆弱性の影響を受ける可能性があるかを判断し、必要な対策を講じるお手伝いをするため、「Spring4Shell」と「Spring Cloud Function」について既知の情報を整理しました。

脆弱性1 - 「Spring4Shell」 (CVE-42-22965)

2022年3月29日、コミュニティはSpring Core(SC)を標的としたエクスプロイトの概念実証(PoC)のスクリーンショットを含む一連のツイートを発見した。このエクスプロイトは、最新版である5.3.17を含むすべてのバージョンのSpring Coreに対して、リモートからのコード実行を可能にするものである。

どのアプリケーションが脅威にさらされているのか?

現時点では、Tomcat上でホストされているアプリケーションのみが、この新たな脆弱性の影響を受けることが確認されています。Tomcat組み込みのサーブレットコンテナやTomcatでホストされていないその他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対しても脅威が有効となる可能性は排除できません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づけば、以下の条件が満たされる場合に脆弱性が存在するとしている:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイル形式でパッケージ化(Spring Bootの実行可能JARファイルとは対照的に)
  • Spring Web MVC または Spring WebFlux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の攻撃手法はどのように機能するのか?

この実装は、メソッドシグネチャ内で単純な古いJavaオブジェクト(POJO)を使用するリクエストにおいて、「データバインダー」(org.springframework.web.bind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義される可能性がある。クラス自体が重要なのではなく、クラスローダーによって読み込まれる限りは問題ないことに注意されたい。

このような方法でリクエストが処理される際、クラスローダーがクラスの解決に使用されます。クラスローダーは、実行時にクラスをロードする役割を担い、事前にすべての可能性のある型をメモリにプリロードする必要はありません。新しいクラスが使用される際に、どの.jarファイルをロードするかを決定します。

この脆弱性に関する最新かつ詳細な情報は、Springのブログ記事で直接入手できます。修正プログラムや回避策の可能性についても記載されています。

脆弱性2:Spring Cloud機能(CVE-249 22963)

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおける修正プログラムが存在しない0日脆弱性(リモートコード実行:RCE)に関する情報を公開しました。この脆弱性にはCVE-04-22963:Spring Expressionにおけるリソースアクセス脆弱性というIDが割り当てられています。

どのアプリケーションが脅威にさらされているのか?

脆弱性は以下の条件下でアプリケーションに影響を与えました:

  • JDK 9 以降
  • Spring Cloud Functions バージョン 3.1.6(またはそれ以前)、3.2.2(またはそれ以前)、またはサポート対象外のバージョン

採掘はどのように行われるのか?

Spring Cloud Functionは、開発者がspring.cloud.function.routing-expressionプロパティを通じてルーティングの処理方法を設定できるようにします。通常は設定ファイルまたはコード経由で行われます。これは「Spring Expression Language」(SPEL)を受け入れる強力な機能です。 この0-day脆弱性により、当該プロパティがリクエストのHTTPヘッダー経由で設定可能であることが判明しました。つまり攻撃者は、RoutingFunctionエンドポイントへのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

ユーザーはリスクを軽減するためにどのような対策を講じるべきですか?

Le printemps はこの問題を解決するため、バージョン 3.1.7 および 3.2.3をリリースしました。これらのバージョンでは、HTTP ヘッダー経由でのこのプロパティの定義を許可せず、脆弱性を軽減しています。いずれかのバージョンにアップグレードした後、追加の作業は必要ありません。

開発者がより安全なコードを書くための支援方法について詳しく知りたいですか?デモを予約するかSecure Code Coachで無料のセキュアコーディングガイドラインをご覧ください

情報源

リソースを表示する
リソースを表示する

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。本記事では「Spring4Shell」と「Spring Cloud Function」に関する既知の詳細情報を解説し、ご自身の環境が危険にさらされている可能性の有無、およびその場合の対応策について理解を深めていただくことを目的としています。

さらに詳しく知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約する
共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Charlie Eriksen
2022年4月1日発行

共有する:
リンクトインのブランドソーシャルx ロゴ

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。 どちらの脆弱性の影響を受ける可能性があるかを判断し、必要な対策を講じるお手伝いをするため、「Spring4Shell」と「Spring Cloud Function」について既知の情報を整理しました。

脆弱性1 - 「Spring4Shell」 (CVE-42-22965)

2022年3月29日、コミュニティはSpring Core(SC)を標的としたエクスプロイトの概念実証(PoC)のスクリーンショットを含む一連のツイートを発見した。このエクスプロイトは、最新版である5.3.17を含むすべてのバージョンのSpring Coreに対して、リモートからのコード実行を可能にするものである。

どのアプリケーションが脅威にさらされているのか?

現時点では、Tomcat上でホストされているアプリケーションのみが、この新たな脆弱性の影響を受けることが確認されています。Tomcat組み込みのサーブレットコンテナやTomcatでホストされていないその他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対しても脅威が有効となる可能性は排除できません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づけば、以下の条件が満たされる場合に脆弱性が存在するとしている:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイル形式でパッケージ化(Spring Bootの実行可能JARファイルとは対照的に)
  • Spring Web MVC または Spring WebFlux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の攻撃手法はどのように機能するのか?

この実装は、メソッドシグネチャ内で単純な古いJavaオブジェクト(POJO)を使用するリクエストにおいて、「データバインダー」(org.springframework.web.bind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義される可能性がある。クラス自体が重要なのではなく、クラスローダーによって読み込まれる限りは問題ないことに注意されたい。

このような方法でリクエストが処理される際、クラスローダーがクラスの解決に使用されます。クラスローダーは、実行時にクラスをロードする役割を担い、事前にすべての可能性のある型をメモリにプリロードする必要はありません。新しいクラスが使用される際に、どの.jarファイルをロードするかを決定します。

この脆弱性に関する最新かつ詳細な情報は、Springのブログ記事で直接入手できます。修正プログラムや回避策の可能性についても記載されています。

脆弱性2:Spring Cloud機能(CVE-249 22963)

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおける修正プログラムが存在しない0日脆弱性(リモートコード実行:RCE)に関する情報を公開しました。この脆弱性にはCVE-04-22963:Spring Expressionにおけるリソースアクセス脆弱性というIDが割り当てられています。

どのアプリケーションが脅威にさらされているのか?

脆弱性は以下の条件下でアプリケーションに影響を与えました:

  • JDK 9 以降
  • Spring Cloud Functions バージョン 3.1.6(またはそれ以前)、3.2.2(またはそれ以前)、またはサポート対象外のバージョン

採掘はどのように行われるのか?

Spring Cloud Functionは、開発者がspring.cloud.function.routing-expressionプロパティを通じてルーティングの処理方法を設定できるようにします。通常は設定ファイルまたはコード経由で行われます。これは「Spring Expression Language」(SPEL)を受け入れる強力な機能です。 この0-day脆弱性により、当該プロパティがリクエストのHTTPヘッダー経由で設定可能であることが判明しました。つまり攻撃者は、RoutingFunctionエンドポイントへのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

ユーザーはリスクを軽減するためにどのような対策を講じるべきですか?

Le printemps はこの問題を解決するため、バージョン 3.1.7 および 3.2.3をリリースしました。これらのバージョンでは、HTTP ヘッダー経由でのこのプロパティの定義を許可せず、脆弱性を軽減しています。いずれかのバージョンにアップグレードした後、追加の作業は必要ありません。

開発者がより安全なコードを書くための支援方法について詳しく知りたいですか?デモを予約するかSecure Code Coachで無料のセキュアコーディングガイドラインをご覧ください

情報源

リソースを表示する
リソースを表示する

以下のフォームに記入してレポートをダウンロードしてください

当社製品および/またはセキュアコーディング関連の情報をお送りするにあたり、ご承諾を頂戴できれば幸いです。お客様の個人情報は常に細心の注意をもって取り扱い、マーケティング目的で他社に販売することは一切ございません。

提出する
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、Analyticsクッキーを有効にしてください。完了後は再度無効化しても構いません。

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。 どちらの脆弱性の影響を受ける可能性があるかを判断し、必要な対策を講じるお手伝いをするため、「Spring4Shell」と「Spring Cloud Function」について既知の情報を整理しました。

脆弱性1 - 「Spring4Shell」 (CVE-42-22965)

2022年3月29日、コミュニティはSpring Core(SC)を標的としたエクスプロイトの概念実証(PoC)のスクリーンショットを含む一連のツイートを発見した。このエクスプロイトは、最新版である5.3.17を含むすべてのバージョンのSpring Coreに対して、リモートからのコード実行を可能にするものである。

どのアプリケーションが脅威にさらされているのか?

現時点では、Tomcat上でホストされているアプリケーションのみが、この新たな脆弱性の影響を受けることが確認されています。Tomcat組み込みのサーブレットコンテナやTomcatでホストされていないその他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対しても脅威が有効となる可能性は排除できません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づけば、以下の条件が満たされる場合に脆弱性が存在するとしている:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイル形式でパッケージ化(Spring Bootの実行可能JARファイルとは対照的に)
  • Spring Web MVC または Spring WebFlux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の攻撃手法はどのように機能するのか?

この実装は、メソッドシグネチャ内で単純な古いJavaオブジェクト(POJO)を使用するリクエストにおいて、「データバインダー」(org.springframework.web.bind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義される可能性がある。クラス自体が重要なのではなく、クラスローダーによって読み込まれる限りは問題ないことに注意されたい。

このような方法でリクエストが処理される際、クラスローダーがクラスの解決に使用されます。クラスローダーは、実行時にクラスをロードする役割を担い、事前にすべての可能性のある型をメモリにプリロードする必要はありません。新しいクラスが使用される際に、どの.jarファイルをロードするかを決定します。

この脆弱性に関する最新かつ詳細な情報は、Springのブログ記事で直接入手できます。修正プログラムや回避策の可能性についても記載されています。

脆弱性2:Spring Cloud機能(CVE-249 22963)

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおける修正プログラムが存在しない0日脆弱性(リモートコード実行:RCE)に関する情報を公開しました。この脆弱性にはCVE-04-22963:Spring Expressionにおけるリソースアクセス脆弱性というIDが割り当てられています。

どのアプリケーションが脅威にさらされているのか?

脆弱性は以下の条件下でアプリケーションに影響を与えました:

  • JDK 9 以降
  • Spring Cloud Functions バージョン 3.1.6(またはそれ以前)、3.2.2(またはそれ以前)、またはサポート対象外のバージョン

採掘はどのように行われるのか?

Spring Cloud Functionは、開発者がspring.cloud.function.routing-expressionプロパティを通じてルーティングの処理方法を設定できるようにします。通常は設定ファイルまたはコード経由で行われます。これは「Spring Expression Language」(SPEL)を受け入れる強力な機能です。 この0-day脆弱性により、当該プロパティがリクエストのHTTPヘッダー経由で設定可能であることが判明しました。つまり攻撃者は、RoutingFunctionエンドポイントへのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

ユーザーはリスクを軽減するためにどのような対策を講じるべきですか?

Le printemps はこの問題を解決するため、バージョン 3.1.7 および 3.2.3をリリースしました。これらのバージョンでは、HTTP ヘッダー経由でのこのプロパティの定義を許可せず、脆弱性を軽減しています。いずれかのバージョンにアップグレードした後、追加の作業は必要ありません。

開発者がより安全なコードを書くための支援方法について詳しく知りたいですか?デモを予約するかSecure Code Coachで無料のセキュアコーディングガイドラインをご覧ください

情報源

ウェビナーを表示する
始めましょう
もっと詳しく

以下のリンクをクリックして、このリソースのPDFをダウンロードしてください。

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

レポートを表示するデモを予約する
PDFをダウンロード
リソースを表示する
共有する:
リンクトインのブランドソーシャルx ロゴ
さらに詳しく知りたいですか?

共有する:
リンクトインのブランドソーシャルx ロゴ
作者
Charlie Eriksen
2022年4月1日発行

共有する:
リンクトインのブランドソーシャルx ロゴ

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。 どちらの脆弱性の影響を受ける可能性があるかを判断し、必要な対策を講じるお手伝いをするため、「Spring4Shell」と「Spring Cloud Function」について既知の情報を整理しました。

脆弱性1 - 「Spring4Shell」 (CVE-42-22965)

2022年3月29日、コミュニティはSpring Core(SC)を標的としたエクスプロイトの概念実証(PoC)のスクリーンショットを含む一連のツイートを発見した。このエクスプロイトは、最新版である5.3.17を含むすべてのバージョンのSpring Coreに対して、リモートからのコード実行を可能にするものである。

どのアプリケーションが脅威にさらされているのか?

現時点では、Tomcat上でホストされているアプリケーションのみが、この新たな脆弱性の影響を受けることが確認されています。Tomcat組み込みのサーブレットコンテナやTomcatでホストされていないその他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対しても脅威が有効となる可能性は排除できません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づけば、以下の条件が満たされる場合に脆弱性が存在するとしている:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイル形式でパッケージ化(Spring Bootの実行可能JARファイルとは対照的に)
  • Spring Web MVC または Spring WebFlux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の攻撃手法はどのように機能するのか?

この実装は、メソッドシグネチャ内で単純な古いJavaオブジェクト(POJO)を使用するリクエストにおいて、「データバインダー」(org.springframework.web.bind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義される可能性がある。クラス自体が重要なのではなく、クラスローダーによって読み込まれる限りは問題ないことに注意されたい。

このような方法でリクエストが処理される際、クラスローダーがクラスの解決に使用されます。クラスローダーは、実行時にクラスをロードする役割を担い、事前にすべての可能性のある型をメモリにプリロードする必要はありません。新しいクラスが使用される際に、どの.jarファイルをロードするかを決定します。

この脆弱性に関する最新かつ詳細な情報は、Springのブログ記事で直接入手できます。修正プログラムや回避策の可能性についても記載されています。

脆弱性2:Spring Cloud機能(CVE-249 22963)

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおける修正プログラムが存在しない0日脆弱性(リモートコード実行:RCE)に関する情報を公開しました。この脆弱性にはCVE-04-22963:Spring Expressionにおけるリソースアクセス脆弱性というIDが割り当てられています。

どのアプリケーションが脅威にさらされているのか?

脆弱性は以下の条件下でアプリケーションに影響を与えました:

  • JDK 9 以降
  • Spring Cloud Functions バージョン 3.1.6(またはそれ以前)、3.2.2(またはそれ以前)、またはサポート対象外のバージョン

採掘はどのように行われるのか?

Spring Cloud Functionは、開発者がspring.cloud.function.routing-expressionプロパティを通じてルーティングの処理方法を設定できるようにします。通常は設定ファイルまたはコード経由で行われます。これは「Spring Expression Language」(SPEL)を受け入れる強力な機能です。 この0-day脆弱性により、当該プロパティがリクエストのHTTPヘッダー経由で設定可能であることが判明しました。つまり攻撃者は、RoutingFunctionエンドポイントへのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

ユーザーはリスクを軽減するためにどのような対策を講じるべきですか?

Le printemps はこの問題を解決するため、バージョン 3.1.7 および 3.2.3をリリースしました。これらのバージョンでは、HTTP ヘッダー経由でのこのプロパティの定義を許可せず、脆弱性を軽減しています。いずれかのバージョンにアップグレードした後、追加の作業は必要ありません。

開発者がより安全なコードを書くための支援方法について詳しく知りたいですか?デモを予約するかSecure Code Coachで無料のセキュアコーディングガイドラインをご覧ください

情報源

目次

PDFをダウンロード
リソースを表示する
さらに詳しく知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードのセキュリティを確保し、サイバーセキュリティを最優先事項とする文化を構築するために、組織をSecure Code Warrior 。アプリケーションセキュリティ担当者、開発者、情報セキュリティ責任者、その他セキュリティに関わるあらゆる方々のために、当社は組織が非セキュアなコードに関連するリスクを軽減するお手伝いをいたします。

デモを予約するダウンロード
共有する:
リンクトインのブランドソーシャルx ロゴ
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません
リソースセンター

はじめの一歩を踏み出すためのリソース

投稿はありません