Springライブラリの新しい脆弱性:危険にさらされているかどうかを知る方法と対処方法

最近、Java コミュニティで最も人気のあるライブラリの 1 つである Spring ライブラリが、リモートコード実行 (RCE) に関連する 2 つの脆弱性を公開しました。いずれかの脆弱性の危険にさらされているかどうか、またどのような対策を講じるべきかをわかりやすくするために、「Spring4Shell」と「Spring Cloud Function」の既知の詳細を分類しました。
脆弱性 1-「Spring4Shell」(CVE-2022-22965)
2022年3月29日、コミュニティは、Spring Core(SC)を標的とするエクスプロイトの概念実証のスクリーンショットを含む一連のツイートを発見しました。これにより、最近リリースされたバージョン5.3.17を含むすべてのバージョンのSpring Coreでリモートコード実行が可能になります。
どのアプリケーションが危険にさらされていますか?
現在、Tomcat でホストされているアプリケーションのみが、この新しいエクスプロイトの危険にさらされていることが確認されています。Embedded Tomcat Servlet Containerや、Tomcat以外でホストされている他のアプリケーションに対する悪用の成功は確認されていませんが、この脅威が将来これらのフレームワークに成功する可能性を排除するものではありません。
春が公式発表 ステートメント 脆弱性について。これにより、脆弱性に関する現在の理解によれば、脆弱になるには以下の条件を満たす必要があることが明らかになっています。
- JDK 9 またはそれ以降
- サーブレットコンテナとしての Apache Tomcat
- 従来のWARとしてパッケージ化されている (Spring Bootの実行可能なjarファイルとは対照的)
- スプリングウェブMVCまたはスプリングウェブフラックス依存関係
- 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-スプリングクラウド機能 (CVE-2022-22963)
2022年3月27日、サイバー・ケンドラは、パッチが存在しないSpring Cloud Functionsにおける0日間のリモートコード実行(RCE)の脆弱性に関する詳細を公開しました。この脆弱性には ID が割り当てられました。 CVE-2022-22963: スプリングエクスプレッションリソースアクセスの脆弱性。
どのアプリケーションが危険にさらされていますか?
この脆弱性は、以下の条件下でアプリケーションに影響しました。
- JDK 9 またはそれ以降のバージョン
- Spring Cloud Functions バージョン 3.1.6 (またはそれ以前)、3.2.2 (またはそれ以下)、またはサポートされていないバージョン
搾取の仕組みは?
Spring Cloud Function では、開発者がプロパティ spring.cloud.function.routing-expression を使用してルーティングの処理方法を構成できます。通常は設定またはコードを使用して行われます。これは「Spring エクスプレッション言語」(SpEL) を受け入れる強力な機能です。この 0 日間の脆弱性から、このプロパティがリクエストの HTTP ヘッダーを介して設定される可能性があることがわかりました。つまり、攻撃者が RoutingFunction エンドポイントへの HTTP リクエストに SpL コードを直接埋め込み、任意のコードを実行できるということです。
リスクを軽減するためにユーザーはどのような措置を講じるべきですか?
春には 解放された バージョン 3.1.7 および 3.2.3 では、HTTP ヘッダーを介してこのプロパティを設定できないようにすることでこの問題に対処し、脆弱性を軽減しています。いずれかのバージョンにアップグレードした後は、追加の手順は必要ありません。
開発者がより安全なコードを書くのをどのように支援するかについてもっと知りたいですか?デモを予約 または、無料の安全なコーディングガイドラインをご覧ください セキュアコードコーチ。
情報源
- 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/
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
これは、オーラが射手と鼻の穴を広げることによって、腸管を熱的に発芽させ、臭いを帯びていることを防ぐためのものです。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.


