Microsoftは米国時間4月5日、Java向けのアプリケーションフレームワーク「Spring Framework」に潜んでいることが最近報告された「Spring4Shell」脆弱性について、詳しく説明した。
同社は、「Microsoft Azure」クラウドサービスの顧客らに対してパッチの適用を呼びかけている。Spring4Shell(共通脆弱性識別子「CVE-2022-22965」)はリモードコード実行(RCE)攻撃につながる可能性のある脆弱性であり、「SpringShell」という名称でも呼ばれている。なおこれらの名称は、Javaのログ出力ライブラリー「Apache Log4j」で発見された「Log4Shell」脆弱性にちなんだものだ。
この脆弱性の深刻度については当初、議論を呼んだものの、問題が発見された後のセキュリティ研究者らの分析によって、Spring4Shellは実際に注意を要する深刻なバグだということが明らかになった。
米サイバーセキュリティインフラセキュリティ庁(CISA)は1日、連邦政府機関を含むすべての米国の組織に対し、速やかにパッチを適用するよう促した。4日には、悪用されている既知の脆弱性のカタログにこの脆弱性を追加している。連邦政府機関は、期限内にこれらの脆弱性にパッチを適用する必要がある。
Microsoftによると、Spring Frameworkは「Java向けの軽量オープンソースフレームワークとして広く普及している」という。このバグは「Java Development Kit」(JDK)バージョン9.0以降で、Spring Frameworkのバージョン5.3.0〜5.3.17あるいは5.2.0〜5.2.19、またはそれ以前のバージョンを使用している場合に影響があるという。
「Microsoft 365 Defender」の脅威インテリジェンスチームは「JDKバージョン9.0以降では、同フレームワークのパラメーター束縛機能を通じてAccessLogValveオブジェクトを取得できるため、遠隔地の攻撃者はある種の条件が成立した場合に、不正なフィールド値を用いることでパイプライン機構を起動して任意のパスにファイルを書き込めるようになる」と記している。
攻撃が成立する条件としては上記以外に、「Apache Tomcat」がサーブレットコンテナーとして稼働しており、アプリが従来型のJava Web Archive(WAR)形式でパッケージ化され、スタンドアロン型のTomcatインスタンスとして配備されている必要があるというものがある。このため、埋込み型のサーブレットコンテナーやリアクティブウェブサーバーを用いる一般的なSpring Bootの配備は同脆弱性の影響を受けない。
Microsoftは「JDKのバージョン9.0以降を用いて、Spring Frameworkやその派生フレームワークを使用しているシステムには脆弱性があると考えるべきだ」と述べている。
Microsoftは、公開している動作可能な唯一の概念実証(PoC)では、Tomcatサーバーのログインモジュールに特定のコマンドを用いることで、遠隔地から同サーバーを使用することのみが可能だと述べている。攻撃者はウェブを介したリクエストを発行することでデフォルトのアクセスログを好きなファイルに変更できる。その後攻撃者はウェブサーバーやウェブアプリケーションのコンテンツを変更できる。
Spring4Shellの影響は、Log4Shellの場合と同様、そのフレームワークを使用している他の製品にも及んでいる。例えばハイパーバイザーを手がけるVMwareは、仮想マシン(VM)やコンテナーソフトウェア向けの「VMware Tanzu」サービスに影響があると警告している。
Microsoftは「今回のエクスプロイトは、CVE-2010-1622のものと同じ機構を過去のバグフィックスを迂回(うかい)するかたちで利用するものだ。『Java 9』では『Java Modules』という新たなテクノロジーが追加されている」と説明している。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。