
Springライブラリの新規脆弱性:リスクの有無を確認する方法と対応策
最近、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で無料のセキュアコーディングガイドラインをご覧ください。
情報源
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/


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

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

最近、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で無料のセキュアコーディングガイドラインをご覧ください。
情報源
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/

最近、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で無料のセキュアコーディングガイドラインをご覧ください。
情報源
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
最近、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で無料のセキュアコーディングガイドラインをご覧ください。
情報源
- https://www.lunasec.io/docs/blog/spring-rce-vulnerabilities/
- https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/




%20(1).avif)
.avif)
