Apache fixes remote code execution bypass in Tomcat web server

Apache は、攻撃者がリモートでコードを実行する可能性のある Tomcat ウェブサーバの重要な脆弱性に対処したセキュリティアップデートをリリースした。

Apache Tomcat は、Java ベースのウェブ・アプリケーションの展開と実行に広く使用されている、オープン・ソースのウェブ・サーバーおよびサーブレット・コンテナである。Tomcatは、Java Servlets、JavaServer Pages (JSP)、Java WebSocket技術の実行環境を提供する。

この製品は、カスタムWebアプリケーションを実行する大企業や、バックエンド・サービスをJavaに依存するSaaSプロバイダーに人気がある。クラウドやホスティング・サービスはアプリ・ホスティング用にTomcatを統合し、ソフトウェア開発者はウェブ・アプリの構築、テスト、配備に利用している。

新しいリリースで修正された脆弱性は、CVE-2024-56337として追跡され、ベンダーが12月17日に不完全なパッチをリリースした、重大なリモートコード実行(RCE)であるCVE-2024-50379の不完全な緩和策に対処している。

このセキュリティ問題は、デフォルトのサーブレット書き込みが有効(「readonly」初期化パラメータをfalseに設定)で、大文字と小文字を区別しないファイルシステム上で動作しているシステムに影響する、使用時間チェック(TOCTOU)競合状態の脆弱性である。

この問題は、Apache Tomcat 11.0.0-M1から11.0.1、10.1.0-M1から10.1.33、および9.0.0.M1から9.0.97に影響します。

ユーザーは最新のTomcatバージョンにアップグレードする必要があります:11.0.2、10.1.34、9.0.98。

この問題に対処するには、追加の手順が必要です。使用しているJavaのバージョンに応じて、ユーザーはアップグレードの他に以下の操作を行う必要があります:

  • Java 8 または 11 の場合、システム・プロパティ「sun.io.useCanonCaches」を「false」に設定することを推奨します(デフォルト:true)。
  • Java 17 では、’sun.io.useCanonCaches’ が設定されている場合は、それが false に設定されていることを確認してください (デフォルト: false)。
  • Java 21 以降では、設定は必要ありません。このプロパティと問題のあるキャッシュは削除されました。

Apacheチームは、Tomcatの次期バージョン11.0.3、10.1.35、9.0.99におけるセキュリティ強化の計画を共有した。

具体的には、Tomcat は大文字小文字を区別しないファイルシステム上でデフォルトのサーブレットの書き込みアクセスを有効にする前に ‘sun.io.useCanonCaches’ が正しく設定されているかどうかをチェックし、可能な場合は ‘sun.io.useCanonCaches’ を false にデフォルト設定する。

これらの変更は、より安全な設定を自動的に実施し、CVE-2024-50379 と CVE-2024-56337 を悪用するリスクを低減することを目的としています。