コンテンツ

Apache Tomcat 4.x の脆弱性

このページには、Apache Tomcat® 4.x のリリースバージョンで修正されたすべてのセキュリティ脆弱性がリストされています。 各脆弱性には、Apache Tomcat セキュリティチームによって セキュリティインパクト評価 が与えられています。この評価はプラットフォームによって異なる場合があることに注意してください。 また、この脆弱性が影響を与えることがわかっている Apache Tomcat のバージョン、および脆弱性が確認されていない場合は、疑問符付きのバージョンもリストしています。

注意: Tomcat の脆弱性ではなく、Tomcat に対して誤って報告された、または Tomcat が回避策を提供している脆弱性は、このページの最後にリストされています。

Tomcat 4.0.x および 4.1.x はサポートされなくなりました。 4.0.x および 4.1.x ブランチの脆弱性は修正されません。 セキュリティ修正を入手するには、8.5.x 以降にアップグレードする必要があります。

これらの脆弱性に関するコメントや修正は、Tomcat セキュリティチームまでお送りください。

目次

Apache Tomcat 4.1.x では修正されません

中程度: 情報漏洩 CVE-2005-4836

非推奨の HTTP/1.1 コネクタは、allowLinking="true" で構成されたコンテキストで使用されている場合、ヌルバイトを含むリクエスト URI を拒否しません。 ヌルバイトを拒否しないと、攻撃者はこれらのコンテキスト内の任意の JSP ページのソースを取得できます。 Tomcat 4.1.x のユーザーは、この問題を発生させないデフォルトでサポートされている Coyote HTTP/1.1 コネクタを使用することをお勧めします。 この問題に対する Tomcat 4.1.x のアップデートをリリースする予定はありません。

影響: 4.1.15-4.1.SVN

Apache Tomcat 4.1.40 で修正

重要: 情報漏洩 CVE-2008-5515

Request から取得した RequestDispatcher を使用する場合、ターゲットパスはクエリ文字列が削除される前に正規化されていました。 特別な細工が施されたリクエストパラメータを含むリクエストを使用して、セキュリティ制約によって保護されている、または WEB-INF ディレクトリの下にあるコンテンツにアクセスできます。

これは、リビジョン 782763 および 783292 で修正されました。

影響: 4.1.0-4.1.39

重要: サービス拒否 CVE-2009-0033

Tomcat が Java AJP コネクタ経由で無効なヘッダーを含むリクエストを受信した場合、エラーを返さずに AJP 接続を閉じます。 このコネクタが mod_jk ロードバランシングワーカーのメンバーである場合、このメンバーはエラー状態になり、約 1 分間使用できなくなります。 したがって、この動作は、慎重に細工されたリクエストを使用したサービス拒否攻撃に使用できます。

これは、リビジョン 781362 で修正されました。

影響: 4.1.0-4.1.39

低: 情報漏洩 CVE-2009-0580

一部の認証クラスのエラーチェックが不十分なため、Tomcat では、不正な URL エンコードされたパスワードを提供することにより、ユーザー名を列挙 (総当たりテスト) することができます。 この攻撃は、MemoryRealm で FORM ベースの認証 (j_security_check) が使用されている場合に可能です。 初期バージョンでは、DataSourceRealm および JDBCRealm も影響を受けていました。

これは、リビジョン 781382 で修正されました。

影響: 4.1.0-4.1.39 (Memory Realm)、4.1.0-4.1.31 (JDBC Realm)、4.1.17-4.1.31 (DataSource Realm)

低: クロスサイトスクリプティング CVE-2009-0781

examples Web アプリケーションのカレンダーアプリケーションには、XSS フィルタリング保護を無効にする無効な HTML が原因で、XSS の脆弱性があります。

これは、リビジョン 750927 で修正されました。

影響: 4.1.0-4.1.39

低: 情報漏洩 CVE-2009-0783

バグ 29936 および 45933 により、Web アプリケーションは Tomcat が web.xml および tld ファイルを処理するために使用する XML パーサーを置き換えることができます。 限定的な状況では、これらのバグにより、不正な Web アプリケーションが、Tomcat インスタンスにデプロイされた他の Web アプリケーションの web.xml および tld ファイルを表示および/または変更できるようになる可能性があります。

これは、リビジョン 781708 で修正されました。

影響: 4.1.0-4.1.39

Apache Tomcat 4.1.39 で修正

中程度: セッションハイジャック CVE-2008-0128

https 経由で SingleSignOn Valve を使用すると、Cookie JSESSIONIDSSO は「secure」属性なしで送信されるため、同じサーバーから http 経由で意図的または誤ってリクエストされたコンテンツに送信されます。

これは、リビジョン 684900 で修正されました。

影響: 4.1.0-4.1.37

低: クロスサイトスクリプティング CVE-2008-1232

HttpServletResponse.sendError() 呼び出しの message 引数は、エラーページに表示されるだけでなく、HTTP レスポンスの reason-phrase にも使用されます。 これには、HTTP ヘッダーでは無効な文字が含まれる場合があります。 特別に細工されたメッセージにより、任意のコンテンツが HTTP レスポンスに挿入される可能性があります。 XSS 攻撃を成功させるには、フィルタリングされていないユーザーが提供したデータが message 引数に含まれている必要があります。

これは、リビジョン 680947 で修正されました。

影響: 4.1.0-4.1.37

重要: 情報漏洩 CVE-2008-2370

RequestDispatcher を使用すると、ターゲットパスはクエリ文字列が削除される前に正規化されていました。 特別な細工が施されたリクエストパラメータを含むリクエストを使用して、セキュリティ制約によって保護されている、または WEB-INF ディレクトリの下にあるコンテンツにアクセスできます。

これは、リビジョン 680950 で修正されました。

影響: 4.1.0-4.1.37

Apache Tomcat 4.1.37 で修正

重要: 情報漏洩 CVE-2005-3164

クライアントが Content-Length を指定しているにもかかわらず、リクエスト本文を送信する前に接続を切断した場合、非推奨の AJP コネクタは、前のリクエストのリクエスト本文を使用してリクエストを処理します。 ユーザーは、この問題を発生させないデフォルトでサポートされている Coyote AJP コネクタを使用することをお勧めします。

影響: 4.0.1-4.0.6, 4.1.0-4.1.36

中程度: クロスサイトスクリプティング CVE-2007-1355

Tomcat ドキュメント Web アプリケーション内のサンプルアプリケーションに含まれている JSP および Servlet は、出力に含める前にユーザーが提供したデータをエスケープしませんでした。 これにより、XSS 攻撃が可能になりました。 これらのページは、出力でユーザーが提供したデータを使用しないように簡略化されました。

影響: 4.0.1-4.0.6, 4.1.0-4.1.36

低: クロスサイトスクリプティング CVE-2007-2449

examples Web アプリケーション内の JSP は、出力に含める前にユーザーが提供したデータをエスケープしませんでした。 これにより、XSS 攻撃が可能になりました。 これらの JSP は、使用前にデータをフィルタリングするようになりました。 この問題は、examples Web アプリケーションをアンデプロイすることで軽減できます。 examples Web アプリケーションは、本番システムにインストールしないことをお勧めします。

影響: 4.0.0-4.0.6, 4.1.0-4.1.36

低: クロスサイトスクリプティング CVE-2007-2450

Manager Web アプリケーションは、出力に含める前にユーザーが提供したデータをエスケープしませんでした。 これにより、XSS 攻撃が可能になりました。 このアプリケーションは、使用前にデータをフィルタリングするようになりました。 この問題は、管理タスクが完了したら、アプリケーションからログアウト (ブラウザを閉じる) することで軽減できます。

影響: 4.0.1-4.0.6, 4.1.0-4.1.36

低: セッションハイジャック CVE-2007-3382

Tomcat は、Cookie 値の単一引用符文字 (') を区切り文字として誤って扱いました。 場合によっては、これにより、セッション ID などの情報が攻撃者に漏洩しました。

影響: 4.1.0-4.1.36

低: クロスサイトスクリプティング CVE-2007-3383

エラーメッセージを報告する際に、SendMailServlet (examples Web アプリケーションの一部) は、出力に含める前にユーザーが提供したデータをエスケープしませんでした。 これにより、XSS 攻撃が可能になりました。 この Servlet は、使用前にデータをフィルタリングするようになりました。 この問題は、examples Web アプリケーションをアンデプロイすることで軽減できます。 examples Web アプリケーションは、本番システムにインストールしないことをお勧めします。

影響: 4.0.0-4.0.6, 4.1.0-4.1.36

低: セッションハイジャック CVE-2007-3385

Tomcat は、Cookie 値の文字シーケンス \" を誤って処理しました。 場合によっては、これにより、セッション ID などの情報が攻撃者に漏洩しました。

影響: 4.1.0-4.1.36

低: セッションハイジャック CVE-2007-5333

CVE-2007-3385 の以前の修正は不完全でした。 Cookie 値内での引用符または %5C の使用は考慮されていませんでした。

影響: 4.1.0-4.1.36

重要: 情報漏洩 CVE-2007-5461

Tomcat の WebDAV サーブレットがコンテキストで使用するために構成され、書き込みが有効になっている場合、SYSTEM タグを持つエンティティを指定する一部の WebDAV リクエストにより、任意のファイルの内容がクライアントに返される可能性があります。

影響: 4.0.0-4.0.6, 4.1.0-4.1.36

Apache Tomcat 4.1.36 で修正

重要: 情報漏洩 CVE-2005-2090

複数の content-length ヘッダーを持つリクエストは無効として拒否される必要があります。 複数のコンポーネント (ファイアウォール、キャッシュ、プロキシ、および Tomcat) が、1 つ以上のリクエストに複数の content-length ヘッダーが含まれており、いくつかのコンポーネントがリクエストを拒否せず、どの content-length ヘッダーを使用するかについて異なる決定を下す一連のリクエストを処理する場合、攻撃者は Web キャッシュを汚染し、XSS 攻撃を実行し、自分自身以外からのリクエストから機密情報を取得できます。 Tomcat は、複数の content-length ヘッダーを持つリクエストに対して 400 を返すようになりました。

影響: 4.0.0-4.0.6, 4.1.0-4.1.34

重要: ディレクトリトラバーサル CVE-2007-0450

この問題の修正は不十分でした。 httpd 用の JK コネクタモジュールでも修正が必要でした。 詳しくは、CVE-2007-1860 を参照してください。

Tomcat では、パス区切り文字として '\', '%2F' および '%5C' が許可されています。 Tomcat が一部のコンテキストのみをプロキシするように構成されたプロキシ (mod_proxy および mod_jk を使用した Apache HTTP サーバーを含むが、これらに限定されない) の背後で使用されている場合、"/../" などの文字列を含む HTTP リクエストにより、攻撃者がプロキシのコンテキスト制限を回避し、プロキシされていないコンテキストにアクセスできるようになる可能性があります。

URL でのパス区切り文字の処理を追加で制御するために、次の Java システムプロパティが Tomcat に追加されました (両方のオプションのデフォルトは false)

  • org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH: true|false
  • org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH: true|false

すべての URL が Tomcat によってプロキシサーバーと同じように処理されることを保証できないため、Tomcat は常にコンテキストアクセスを制限するプロキシが使用されていないかのように保護する必要があります。

影響: 4.0.0-4.0.6, 4.1.0-4.1.34

低: クロスサイトスクリプティング CVE-2007-1358

クライアントから送信された Accept-Language ヘッダー値を表示する Web ページは、Accept-Language ヘッダー値が RFC 2616 に準拠していると想定した場合、クロスサイトスクリプティング攻撃を受けやすくなります。 通常の状態では、これを悪用することはできませんが、古いバージョンの Flash Player では、慎重に細工された悪意のある Flash ファイルが、そのようなカスタムヘッダーを含むリクエストを行うことが許可されていました。 getLocale() および getLocales() のレスポンスを生成する際、Tomcat は RFC 2616 に準拠していない Accept-Language ヘッダーの値を無視するようになりました。 未加工のヘッダー値を直接使用するアプリケーションは、ヘッダーが RFC 2616 に準拠していると想定すべきではなく、値を適切にフィルタリングする必要があります。

影響: 4.0.0-4.0.6, 4.1.0-4.1.34

Apache Tomcat 4.1.35 で修正

低: 情報漏洩 CVE-2008-4308

バグ 40771 により、前のリクエストから POST されたコンテンツが漏洩する可能性があります。 脆弱性が存在するためには、入力ストリームから読み取られたコンテンツが開示される必要があり、たとえば、レスポンスに書き込み、リクエストの処理を停止する ArrayIndexOutOfBoundsException が発生する前にレスポンスをコミットするなどです。

影響: 4.1.32-4.1.34 (4.0.x は不明)

Apache Tomcat 4.1.32 で修正

低: 情報漏洩 CVE-2008-3271

バグ 25835 は、まれな状況下で、RequestFilterValve を拡張するバルブで保護されているコンテキストへのアクセスを、許可されていない IP アドレスからのユーザーに許可する可能性があります。 これは、標準の RemoteAddrValve および RemoteHostValve 実装が含まれます。

影響: 4.1.0-4.1.31

重要: 情報漏洩 CVE-2007-1858

デフォルトの SSL 構成では、匿名暗号スイートを含む安全でない暗号スイートの使用が許可されていました。 デフォルトの構成では、安全でない暗号スイートの使用は許可されなくなりました。

影響: 4.1.28-4.1.31

低: クロスサイトスクリプティング CVE-2006-7196

JSP の例の一部として含まれているカレンダーアプリケーションは、返されたページに含める前にユーザーが提供したデータをエスケープしないため、クロスサイトスクリプティング攻撃を受けやすくなっています。

影響: 4.0.0-4.0.6, 4.1.0-4.1.31

低: ディレクトリリスト CVE-2006-3835

これは、ディレクトリリストが有効になっている場合の期待される動作です。 セミコロン (;) はパスパラメータの区切り文字であるため、ファイル名の前に挿入すると、リクエストがパスパラメータを持つディレクトリのリクエストに変更されます。 ディレクトリリストが有効になっている場合、ディレクトリリストが表示されます。 これおよび他のディレクトリリストの問題に対応して、ディレクトリリストはデフォルトで無効になるように変更されました。

影響: 4.0.0-4.0.6, 4.1.0-4.1.31

低: クロスサイトスクリプティング CVE-2005-4838

JSP の例および Tomcat Manager の一部として含まれているさまざまな JSP は、返されたページに含める前にユーザーが提供したデータをエスケープしないため、クロスサイトスクリプティング攻撃を受けやすくなっています。

影響: 4.0.0-4.0.6, 4.1.0-4.1.31

重要: サービス拒否 CVE-2005-3510

根本的な原因は、ディレクトリリストのコンテンツを生成するために必要な比較的コストのかかる呼び出しです。 ディレクトリリストが有効になっている場合、各ディレクトリ内のファイル数を最小限に抑える必要があります。 この問題に対応して、ディレクトリリストはデフォルトで無効になるように変更されました。 さらに、パッチ が提案されており、特に大きなディレクトリの場合、ディレクトリリストをキャッシュすることでパフォーマンスが向上します。

影響: 4.0.0-4.0.6, 4.1.0-4.1.31

Apache Tomcat 4.1.29 で修正

中程度: クロスサイトスクリプティング CVE-2002-1567

未修正のリクエストされた URL が 404 レスポンスヘッダーに含まれています。 この URL の改行は、クライアントにはヘッダーセクションの終わりであると認識されます。 スクリプト要素を含む URL の残りの部分は、レスポンス本文の一部として扱われ、クライアントはスクリプトを実行します。 Tomcat は、レスポンスヘッダー内の潜在的に安全でない文字をスペースに置き換えるようになりました。

影響: 4.1.0-4.1.28

Apache Tomcat 4.1.13, 4.0.6 で修正

重要: 情報漏洩 CVE-2002-1394

インボーカサーブレットをデフォルトサーブレットと組み合わせて使用する特別に細工された URL により、攻撃者は JSP ページのソースを取得したり、特別な状況下では、適切な認証を必要とせずにセキュリティ制約によって保護されている静的リソースを取得したりできるようになる可能性があります。 これは、CVE-2002-1148 の変形です

影響: 4.0.0-4.0.5, 4.1.0-4.1.12

中程度: クロスサイトスクリプティング CVE-2002-0682

インボーカサーブレットとさまざまな内部クラスを使用する特別に細工された URL により、Tomcat は、不正な形式のリクエストからのエスケープされていない情報を含む例外をスローします。 これにより、XSS 攻撃が可能になります。

影響: 4.0.0-4.0.5, 4.1.0-4.1.12

Apache Tomcat 4.1.12, 4.0.5 で修正

重要: 情報漏洩 CVE-2002-1148

デフォルトサーブレットを使用する特別に細工された URL により、攻撃者は JSP ページのソースを取得できるようになります。

影響: 4.0.0-4.0.4, 4.1.0-4.1.11

Apache Tomcat 4.1.3 で修正

重要: サービス拒否 CVE-2002-0935

不正な形式の HTTP リクエストにより、リクエスト処理スレッドが応答しなくなる可能性があります。 そのようなリクエストのシーケンスにより、すべてのリクエスト処理スレッド、したがって Tomcat 全体が応答しなくなる可能性があります。

影響を受けるバージョン: 4.0.0-4.0.2?, 4.0.3, 4.0.4-4.0.6?, 4.1.0-4.1.2?

Apache Tomcat 4.1.0 で修正

重要: サービス拒否 (DoS) CVE-2003-0866

不正な形式の HTTP リクエストにより、リクエスト処理スレッドが応答しなくなる可能性があります。 そのようなリクエストのシーケンスにより、すべてのリクエスト処理スレッド、したがって Tomcat 全体が応答しなくなる可能性があります。

影響を受けるバージョン: 4.0.0-4.0.6

低: 情報漏洩 CVE-2002-2006

サンプルの一部としてインストールされる snoop およびトラブルシューティングサーブレットには、Tomcat のインストールパスを識別する出力が含まれます。

影響を受けるバージョン: 4.0.0-4.0.6

Apache Tomcat 4.0.2 で修正

低: 情報漏洩 CVE-2002-2009, CVE-2001-0917

ファイル名の先頭に '+/', '>/', '</' または '%20/' が付いた JSP ファイルへのリクエスト、または長いファイル名のJSPへのリクエストは、JSPファイルへの完全なファイルシステムパスを含むエラーページを表示させます。

影響を受けるバージョン: 4.0.0-4.0.1

Apache Tomcat 4.0.0 で修正

中: セキュリティマネージャーのバイパス CVE-2002-0493

web.xml の解析中にエラーが発生し、Tomcat がセキュリティマネージャーを使用するように構成されている場合、Tomcat がセキュリティマネージャーなしで起動する可能性があります。

影響を受けるバージョン: 4.0.0 のプレリリースビルド

未検証

低: インストールパスの漏洩 CVE-2005-4703, CVE-2002-2008

この問題は、Windows オペレーティングシステムにのみ影響します。JDK 1.3.1, 1.4.2, 1.5.0 または 1.6.0 を使用した Windows XP Home では再現できません。この問題が発生する Windows オペレーティングシステムと JDK の組み合わせを特定するには、さらに調査が必要です。この問題に関する脆弱性レポートには、4.1.3 以降で修正されたと記載されています。

影響を受けるバージョン: 4.0.3?

重要: サービス拒否 (DoS) CVE-2002-1895

この問題は、Tomcat と AJP1.3 コネクタを組み合わせて IIS を使用する構成にのみ影響します。最新のパッチを適用した Windows 2000 SP4 と JDK 1.3.1 を使用した Tomcat 4.0.4 では再現できません。この問題に関する脆弱性レポートには、4.1.10 以降で修正されたと記載されています。

影響を受けるバージョン: 4.0.4?

Tomcat の脆弱性ではない

重要: ディレクトリトラバーサル CVE-2008-2938

元々は Tomcat の脆弱性として報告されましたが、この問題の根本原因は、JVM が UTF-8 エンコードされた URL を UTF-8 に正しくデコードしないことです。これにより、コネクタが URIEncoding="UTF-8" を使用している場合に、ディレクトリトラバーサルの脆弱性が露呈します。このディレクトリトラバーサルは、Web アプリケーションの docBase に限定されます。

コンテキストが allowLinking="true" で構成されている場合、ディレクトリトラバーサルの脆弱性はホストサーバーのファイルシステム全体に拡張されます。

また、useBodyEncodingForURI="true" を設定することは、UTF-8 でエンコードされたリクエストボディを処理する際に URIEncoding="UTF-8" を設定するのと同じ効果があることにも注意してください。

根本原因が JVM の問題であり、複数のベンダーの複数の JVM に影響を与えることがすぐに特定されましたが、JVM ベンダーがこの問題を解決するためのアップデートを提供するまでは、Tomcat の脆弱性として報告することに決定されました。ご使用の JVM におけるこの問題のステータスに関する詳細については、JVM ベンダーにお問い合わせください。

リビジョン 681065 で、この問題や JVM にまだ存在する可能性のある同様の文字エンコーディングの問題から保護する回避策が実装されました。この回避策は、Tomcat 4.1.39 以降に含まれています。

サービス拒否 (DoS) の脆弱性 CVE-2002-0936

記述されている問題では、攻撃者が Tomcat サーバーに JSP ページを配置できる必要があります。攻撃者がこれを行うことができる場合、サーバーはすでに侵害されています。この場合、攻撃者は、Sun の内部クラスのバグに頼るのではなく、System.exit(1) を呼び出すページを追加する方が簡単です。