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

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

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

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。これらの脆弱性の影響を受けるリスクがあるかどうか、またどのような対策を講じるべきかをよりよく理解していただくため、「Spring4Shell」と「Spring Cloud Function」について、現時点で判明している詳細を解説します。

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

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

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

現時点で、この新たなエクスプロイトの被害リスクが確認されているのはTomcat上でホストされているアプリケーションのみです。Tomcatの組み込みサーブレットコンテナやTomcat上でホストされていない他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対する脅威が成功する可能性を排除するものではありません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づき、脆弱性が成立するためには以下の条件を満たす必要があることを明らかにした:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイルとしてパッケージ化(Spring Bootの実行可能ファイルとは異なります)
  • spring-webmvc または spring-webflux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の悪用はどのように機能するのか?

この悪用は、メソッド署名において従来のシンプルなJavaオブジェクト(POJO)を使用するリクエストにおける「データバインディング」(org.springFramework.webbind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義できる。実際のクラスは重要ではなく、クラスローダーによって読み込まれる限り問題ない。

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

この脆弱性に関する最新かつ詳細な情報は、Springの公式ブログ記事から直接入手できます。これには、修正プログラムや代替ソリューションの可能性も含まれています。

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

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおけるパッチが存在しない0日攻撃可能なリモートコード実行(RCE)脆弱性の詳細を公表した。この脆弱性にはCVE-333322963: 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)をサポートする強力な機能です。 このゼロデイ脆弱性により、当該プロパティがリクエストのHTTPヘッダーを通じて設定可能であることが判明しました。つまり、攻撃者はRoutingFunctionエンドポイント宛てのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

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

La Primaveraバージョン3.1.7および3.2.3を公開しており、この問題はHTTPヘッダーを介したプロパティの設定を許可しないことで対処され、脆弱性が軽減されています。いずれかのバージョンに更新後、追加の手順は不要です。

開発者がより安全なコードを書くのを支援する方法について、さらに詳しく知りたいですか?デモを予約するか、無料の安全なコーディングガイドラインをコードセーフトレーナーでご覧ください

フエンテス

リソースを参照
リソースを参照

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリに、リモートコード実行(RCE)に関連する2つの脆弱性が発見されました。私たちは「Spring4Shell」と「Spring Cloud Function」について既知の詳細を分析し、ご自身のリスク評価と対応策の理解を支援します。

もっと知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

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

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

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。これらの脆弱性の影響を受けるリスクがあるかどうか、またどのような対策を講じるべきかをよりよく理解していただくため、「Spring4Shell」と「Spring Cloud Function」について、現時点で判明している詳細を解説します。

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

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

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

現時点で、この新たなエクスプロイトの被害リスクが確認されているのはTomcat上でホストされているアプリケーションのみです。Tomcatの組み込みサーブレットコンテナやTomcat上でホストされていない他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対する脅威が成功する可能性を排除するものではありません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づき、脆弱性が成立するためには以下の条件を満たす必要があることを明らかにした:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイルとしてパッケージ化(Spring Bootの実行可能ファイルとは異なります)
  • spring-webmvc または spring-webflux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の悪用はどのように機能するのか?

この悪用は、メソッド署名において従来のシンプルなJavaオブジェクト(POJO)を使用するリクエストにおける「データバインディング」(org.springFramework.webbind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義できる。実際のクラスは重要ではなく、クラスローダーによって読み込まれる限り問題ない。

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

この脆弱性に関する最新かつ詳細な情報は、Springの公式ブログ記事から直接入手できます。これには、修正プログラムや代替ソリューションの可能性も含まれています。

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

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおけるパッチが存在しない0日攻撃可能なリモートコード実行(RCE)脆弱性の詳細を公表した。この脆弱性にはCVE-333322963: 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)をサポートする強力な機能です。 このゼロデイ脆弱性により、当該プロパティがリクエストのHTTPヘッダーを通じて設定可能であることが判明しました。つまり、攻撃者はRoutingFunctionエンドポイント宛てのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

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

La Primaveraバージョン3.1.7および3.2.3を公開しており、この問題はHTTPヘッダーを介したプロパティの設定を許可しないことで対処され、脆弱性が軽減されています。いずれかのバージョンに更新後、追加の手順は不要です。

開発者がより安全なコードを書くのを支援する方法について、さらに詳しく知りたいですか?デモを予約するか、無料の安全なコーディングガイドラインをコードセーフトレーナーでご覧ください

フエンテス

リソースを参照
リソースを参照

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

当社製品や安全な暗号化に関する情報をお送りする許可を頂ければ幸いです。お客様の個人情報は常に最大限の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
SCW成功アイコン
SCWエラーアイコン
フォームを送信するには、「分析」クッキーを有効にしてください。完了後は、お気軽に再度無効にしてください。

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。これらの脆弱性の影響を受けるリスクがあるかどうか、またどのような対策を講じるべきかをよりよく理解していただくため、「Spring4Shell」と「Spring Cloud Function」について、現時点で判明している詳細を解説します。

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

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

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

現時点で、この新たなエクスプロイトの被害リスクが確認されているのはTomcat上でホストされているアプリケーションのみです。Tomcatの組み込みサーブレットコンテナやTomcat上でホストされていない他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対する脅威が成功する可能性を排除するものではありません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づき、脆弱性が成立するためには以下の条件を満たす必要があることを明らかにした:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイルとしてパッケージ化(Spring Bootの実行可能ファイルとは異なります)
  • spring-webmvc または spring-webflux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の悪用はどのように機能するのか?

この悪用は、メソッド署名において従来のシンプルなJavaオブジェクト(POJO)を使用するリクエストにおける「データバインディング」(org.springFramework.webbind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義できる。実際のクラスは重要ではなく、クラスローダーによって読み込まれる限り問題ない。

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

この脆弱性に関する最新かつ詳細な情報は、Springの公式ブログ記事から直接入手できます。これには、修正プログラムや代替ソリューションの可能性も含まれています。

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

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおけるパッチが存在しない0日攻撃可能なリモートコード実行(RCE)脆弱性の詳細を公表した。この脆弱性にはCVE-333322963: 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)をサポートする強力な機能です。 このゼロデイ脆弱性により、当該プロパティがリクエストのHTTPヘッダーを通じて設定可能であることが判明しました。つまり、攻撃者はRoutingFunctionエンドポイント宛てのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

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

La Primaveraバージョン3.1.7および3.2.3を公開しており、この問題はHTTPヘッダーを介したプロパティの設定を許可しないことで対処され、脆弱性が軽減されています。いずれかのバージョンに更新後、追加の手順は不要です。

開発者がより安全なコードを書くのを支援する方法について、さらに詳しく知りたいですか?デモを予約するか、無料の安全なコーディングガイドラインをコードセーフトレーナーでご覧ください

フエンテス

ウェビナーを見る
始める
もっと詳しく

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

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

報告書を見るデモを予約する
PDFをダウンロード
リソースを参照
共有する:
リンクトインのブランドソーシャルx ロゴ
もっと知りたいですか?

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

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

最近、Javaコミュニティで最も人気のあるライブラリの一つであるSpringライブラリにおいて、リモートコード実行(RCE)に関連する2つの脆弱性が明らかになりました。これらの脆弱性の影響を受けるリスクがあるかどうか、またどのような対策を講じるべきかをよりよく理解していただくため、「Spring4Shell」と「Spring Cloud Function」について、現時点で判明している詳細を解説します。

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

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

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

現時点で、この新たなエクスプロイトの被害リスクが確認されているのはTomcat上でホストされているアプリケーションのみです。Tomcatの組み込みサーブレットコンテナやTomcat上でホストされていない他のアプリケーションに対する攻撃の成功例は確認されていませんが、将来的にこれらのフレームワークに対する脅威が成功する可能性を排除するものではありません。

Springは脆弱性に関する公式声明を発表し、現在の脆弱性理解に基づき、脆弱性が成立するためには以下の条件を満たす必要があることを明らかにした:

  • JDK 9 以降
  • Apache Tomcat サーブレットコンテナとして
  • 従来のWARファイルとしてパッケージ化(Spring Bootの実行可能ファイルとは異なります)
  • spring-webmvc または spring-webflux の依存関係
  • Spring Framework バージョン 5.3.0 から 5.3.17、5.2.0 から 5.2.19 およびそれ以前のバージョン

「Spring4Shell」の悪用はどのように機能するのか?

この悪用は、メソッド署名において従来のシンプルなJavaオブジェクト(POJO)を使用するリクエストにおける「データバインディング」(org.springFramework.webbind.WebDataBinder)の活用に基づいています:

FooクラスはPOJOクラスであり、以下のように定義できる。実際のクラスは重要ではなく、クラスローダーによって読み込まれる限り問題ない。

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

この脆弱性に関する最新かつ詳細な情報は、Springの公式ブログ記事から直接入手できます。これには、修正プログラムや代替ソリューションの可能性も含まれています。

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

2022年3月27日、Cyber KendraはSpring Cloud Functionsにおけるパッチが存在しない0日攻撃可能なリモートコード実行(RCE)脆弱性の詳細を公表した。この脆弱性にはCVE-333322963: 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)をサポートする強力な機能です。 このゼロデイ脆弱性により、当該プロパティがリクエストのHTTPヘッダーを通じて設定可能であることが判明しました。つまり、攻撃者はRoutingFunctionエンドポイント宛てのHTTPリクエストにSPELコードを直接埋め込み、任意のコードを実行できることを意味します。

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

La Primaveraバージョン3.1.7および3.2.3を公開しており、この問題はHTTPヘッダーを介したプロパティの設定を許可しないことで対処され、脆弱性が軽減されています。いずれかのバージョンに更新後、追加の手順は不要です。

開発者がより安全なコードを書くのを支援する方法について、さらに詳しく知りたいですか?デモを予約するか、無料の安全なコーディングガイドラインをコードセーフトレーナーでご覧ください

フエンテス

目次

PDFをダウンロード
リソースを参照
もっと知りたいですか?

もっと詳しく

Secure Code Warrior ソフトウェア開発ライフサイクル全体を通じてコードを保護し、サイバーセキュリティを最優先事項とする文化を構築するために、貴組織をSecure Code Warrior 。AppSec管理者、開発者、CISO、セキュリティ関連担当者など、あらゆる立場の方々に対し、不安全なコードに関連するリスクを軽減するお手伝いをいたします。

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

始めるためのリソース

その他の投稿
リソースセンター

始めるためのリソース

その他の投稿