独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は3月11日、Apache Tomcat partial PUTにおけるリモートコード実行、情報漏えいや改ざんの脆弱性について「Japan Vulnerability Notes(JVN)」で発表した。影響を受けるシステムは以下の通り。
Apache Tomcat 11.0.0-M1から11.0.2まで
Apache Tomcat 10.1.0-M1から10.1.34まで
Apache Tomcat 9.0.0.M1から9.0.98まで
Apache Tomcatのpartial PUTの元の実装では、ユーザーが指定したファイル名とパスを基にパス区切り文字を「.」に置き換えた一時ファイルが使用されており、特定の条件下で、リモートコード実行、セキュリティ上重要なファイルの表示やコンテンツ挿入の可能性がある。
下記のすべての条件が成立する場合、セキュリティ上重要なファイルの表示やコンテンツ挿入の可能性がある。
・デフォルトサーブレットの書き込みが有効(デフォルトで無効)
・partial PUTをサポート(デフォルトで有効)
・セキュリティ上重要なアップロード対象のURLが、パブリックアップロード対象URLのサブディレクトリである
・攻撃者がアップロードされるセキュリティ上重要なファイルの名前を知っている
・セキュリティ上重要なファイルがpartial PUTでアップロードされる
下記のすべての条件が成立する場合、リモートコード実行の可能性がある。
・デフォルトサーブレットの書き込みが有効(デフォルトで無効)
・partial PUTをサポート(デフォルトで有効)
・アプリケーションがデフォルトのストレージロケーションでTomcatのファイルベースのセッション永続性を使用している
・アプリケーションに、デシリアライゼーション攻撃に利用される可能性のあるライブラリが含まれている
JVNでは、開発者が提供する情報をもとに最新版へアップデートするよう呼びかけている。なお、本脆弱性は下記のバージョンで修正されている。
Apache Tomcat 11.0.3以降
Apache Tomcat 10.1.35以降
Apache Tomcat 9.0.99以降