最近のニュースはそれを壊しました ゼロデイタイプの重大な脆弱性が検出されました モジュール内 SpringCoreはSpringFrameworkの一部として出荷されました、これにより、認証されていないリモートの攻撃者がサーバー上でコードを実行できるようになります。
いくつかの見積もりによると、SpringCoreモジュール Javaアプリケーションの74%で使用されています。 脆弱性の危険性は、 「@RequestMapping」アノテーションを使用してリクエストハンドラーをフックし、JSON /XMLではなく「name=value」(POJO、Plain Old Java Object)形式のWebフォームパラメーターバインディングを使用することで、攻撃を受けやすくなります。 この問題の影響を受けるJavaアプリケーションとフレームワークはまだ明確ではありません。
「Spring4Shell」という名前のこの脆弱性は、クラスインジェクションを利用して完全なRCEを引き起こし、非常に深刻です。 「Spring4Shell」という名前が選ばれたのは、Spring Coreが、悪名高いLog4Shellの脆弱性を生み出したlog4jに似たユビキタスライブラリであるためです。
JDKバージョン9以降を実行しているユーザーは、RCE攻撃に対して脆弱であると考えています。 SpringCoreのすべてのバージョンが影響を受けます。
攻撃を軽減するための戦略があり、以下で説明する他の要因によっては、すべてのSpringサーバーが必ずしも脆弱であるとは限りません。 ただし、現在、Spring Coreを使用している場合は、すべてのユーザーが緩和策を適用するか、アップグレードすることをお勧めします。
脆弱性の悪用は、Java /JDK9を使用している場合にのみ可能です。 または新しいバージョン。 この脆弱性は、フィールド「class」、「module」、および「classLoader」のブラックリストへの登録、または許可されたフィールドの明示的なホワイトリストの使用をブロックします。
問題 これは、CVE-2010-1622の脆弱性に対する保護を回避する機能によるものです。 2010年のSpringFrameworkで修正され、リクエストパラメーターを解析する際のclassLoaderハンドラーの実行に関連付けられました。
エクスプロイトの操作は、リクエストの送信に限定されますcパラメータ「class.module.classLoader.resources.context.parent.pipeline.first。*」を使用します。この処理により、「WebappClassLoaderBase」を使用すると、AccessLogValveクラスが呼び出されます。
指定されたクラスを使用すると、Apache Tomcatのルート環境に任意のjspファイルを作成し、攻撃者が指定したコードをこのファイルに書き込むようにロガーを構成できます。 作成されたファイルは直接リクエストに使用でき、Webシェルとして使用できます。 Apache Tomcat環境で脆弱なアプリケーションを攻撃するには、curlユーティリティを使用して特定のパラメータを使用してリクエストを送信するだけで十分です。
SpringCoreで検討中の問題 新たに特定された脆弱性と混同しないでください CVE-2022-22963およびCVE-2022-22950。 最初の問題はSpringCloudパッケージに影響し、リモートでコードが実行(エクスプロイト)される可能性もあります。 CVE-2022-22963は、SpringCloud3.1.7および3.2.3リリースで修正されています。
2022番目の問題CVE-22950-5.3.17はSpringExpressionに存在し、DoS攻撃を開始するために使用でき、SpringFrameworkXNUMXで修正されています。 これらは根本的に異なる脆弱性です。 Spring Frameworkの開発者は、新しい脆弱性についてまだ何も発表しておらず、修正もリリースしていません。
一時的な保護手段として、コードで無効なクエリパラメータのブラックリストを使用することをお勧めします。
まだ 結果がどれほど壊滅的なものになるかは明らかではありません 識別された問題と、Log4j 2の脆弱性の場合と同じように攻撃が大規模になるかどうかを確認します。この脆弱性のコードネームはSpring4Shell、CVE-2022-22965であり、SpringFramework5.3.18および5.2.20のアップデートがリリースされています。脆弱性に対処するため。
パッチは、31年2022月5.3.18日の時点で、最新リリースのSpringバージョン5.2.20およびXNUMXで利用可能になりました。 すべてのユーザーにアップグレードすることをお勧めします。 アップグレードできない場合は、次の緩和策が可能です。
Spring CoreにRCEが存在することを確認したPraetorianの投稿に基づいて、現在推奨されているアプローチは、悪用に必要な脆弱なフィールドパターンのブラックリストを追加してDataBinderにパッチを適用することです。
最後にはい あなたはそれについてもっと知りたいです メモについては、詳細を確認できます 次のリンクで。