コンテンツ
Apache Tomcat 5.x の脆弱性
このページには、Apache Tomcat® 5.x のリリースバージョンで修正されたすべてのセキュリティ脆弱性が記載されています。各脆弱性には、Apache Tomcat セキュリティチームによるセキュリティ影響評価が付けられています。この評価はプラットフォームによって異なる場合があることに注意してください。また、この欠陥が影響を与えることが知られているApache Tomcatのバージョンも記載しており、欠陥が検証されていない場合は疑問符付きでバージョンを記載しています。
注:Tomcat の脆弱性ではないが、誤って Tomcat に対して報告されたもの、または Tomcat が回避策を提供する脆弱性は、このページの最後に記載されています。
Tomcat 5.0.x および 5.5.x はすでにサポートが終了していることに注意してください。5.0.x および 5.5.x ブランチにおけるそれ以降の脆弱性は修正されません。セキュリティ修正を取得するには、ユーザーは 8.5.x 以降にアップグレードする必要があります。Tomcat 5.5.26 以降で修正された脆弱性は、5.0.x ブランチに存在するかどうかは評価されていません。
バイナリパッチは提供されないことに注意してください。ソースコードパッチを適用する必要がある場合は、使用している Apache Tomcat バージョンのビルド手順に従ってください。Tomcat 5.5 の場合、それらはドキュメント(バイナリ配布物のwebapps/tomcat-docs
サブディレクトリ)のbuilding.html
と、ソース配布物のBUILDING.txt
ファイルです。
Tomcat のビルドや設定に関するヘルプ、またはここに記載されている既知の脆弱性を軽減するための手順の実行に関するその他のヘルプが必要な場合は、公開されているTomcat Users メーリングリストに質問を送信してください。
未記載のセキュリティ脆弱性やセキュリティ上の影響を伴う予期せぬ動作に遭遇した場合、またはここでの説明が不完全な場合は、非公開でTomcat Security Teamに報告してください。ありがとうございます。
目次
2012年10月10日リリース Apache Tomcat 5.5.36 で修正済み
中:DIGEST 認証の脆弱性 CVE-2012-3439
Tomcat の DIGEST 認証の実装における3つの脆弱性が特定され、解決されました。
- Tomcat はサーバーではなくクライアントのノンスとノンスカウントを追跡していました。
- セッションIDが存在する場合、認証がバイパスされました。
- ノンスが古いことを示す前に、ユーザー名とパスワードがチェックされていませんでした。
これらの問題により、DIGEST 認証のセキュリティが低下し、特定の状況でリプレイ攻撃が可能になりました。
これはリビジョン1392248で修正されました。
最初の問題は2012年7月19日に Tilmann Kuhn 氏から Tomcat セキュリティチームに報告されました。2番目と3番目の問題は、結果として行われたコードレビュー中に Tomcat セキュリティチームによって発見されました。これら3つの問題はすべて2012年11月5日に公開されました。
影響を受けるバージョン:5.5.0-5.5.35
2012年1月16日リリース Apache Tomcat 5.5.35 で修正済み
重要:サービス拒否 CVE-2012-0022
最近のハッシュ衝突の脆弱性の分析により、Apache Tomcat の多数のパラメータとパラメータ値の処理における無関係な非効率性が特定されました。これらの非効率性により、攻撃者は特別に細工されたリクエストを介して大量のCPUを使用させ、サービス拒否を引き起こす可能性がありました。この問題は、Tomcat のパラメータ処理コードを修正し、多数のパラメータとパラメータ値を効率的に処理できるようにすることで対処されました。
これはリビジョン1221282、1224640、および1228191で修正されました。
これは2011年10月21日に Tomcat セキュリティチームによって特定され、2012年1月17日に公開されました。
影響を受けるバージョン:5.5.0-5.5.34
2011年9月22日リリース Apache Tomcat 5.5.34 で修正済み
中:HTTP DIGEST 認証における複数の脆弱性 CVE-2011-1184
注:Mitre はこの問題を複数の問題に分割することを選択し、この問題の一部に以下の追加参照を割り当てました。CVE-2011-5062、CVE-2011-5063、およびCVE-2011-5064。Apache Tomcat セキュリティチームは、参照CVE-2011-1184を使用してこれを単一の問題として扱い続けます。
HTTP DIGEST 認証の実装にいくつかの脆弱性があることが判明しました。
- リプレイ攻撃が許可されていました。
- サーバーノンスがチェックされていませんでした。
- クライアントノンスカウントがチェックされていませんでした。
- qop 値がチェックされていませんでした。
- レルム値がチェックされていませんでした。
- サーバーシークレットが既知の文字列にハードコードされていました。
これらの脆弱性の結果、DIGEST 認証は BASIC 認証と同じ程度のセキュリティしか提供していませんでした。
これはリビジョン 1159309で修正されました。
これは2011年3月16日に Tomcat セキュリティチームによって特定され、2011年9月26日に公開されました。
影響を受けるバージョン:5.5.0-5.5.33
低:情報漏えい CVE-2011-2204
MemoryUserDatabase (tomcat-users.xml に基づく) を使用し、JMX 経由でユーザーを作成する際、ユーザー作成プロセス中に例外が発生すると、JMX クライアントにユーザーのパスワードを含むエラーメッセージが表示される場合があります。このエラーメッセージは Tomcat のログにも書き込まれます。ユーザーパスワードは、JMX アクセス権を持つ管理者や、tomcat-users.xml ファイルの読み取りアクセス権を持つ管理者には見えてしまいます。これらの権限を持たないがログファイルを読み取ることができるユーザーは、ユーザーのパスワードを発見できる可能性があります。
これはリビジョン 1140072で修正されました。
これは2011年6月14日に Polina Genova 氏によって特定され、2011年6月27日に公開されました。
影響を受けるバージョン:5.5.0-5.5.33
低:情報漏えい CVE-2011-2526
Tomcat は HTTP APR コネクタでの sendfile をサポートしています。sendfile は DefaultServlet 経由で提供されるコンテンツに自動的に使用され、デプロイされたウェブアプリケーションはリクエスト属性を設定することで直接使用できます。これらのリクエスト属性は検証されていませんでした。セキュリティマネージャーの下で実行されている場合、この検証の欠如により、悪意のあるウェブアプリケーションは通常セキュリティマネージャーによって防止される以下の1つまたは複数を実行できました。
- セキュリティマネージャーがアクセスを禁止すべきファイルをユーザーに返す
- JVM を終了させる (クラッシュさせる)
さらに、これらの脆弱性は以下のすべてが真である場合にのみ発生します。
- 信頼できないウェブアプリケーションが使用されている
- SecurityManager が信頼できないウェブアプリケーションを制限するために使用されている
- HTTP APR コネクタが使用されている
- コネクタで sendfile が有効になっている(これはデフォルトです)
これはリビジョン 1158244で修正されました。
これは2011年7月7日に Tomcat セキュリティチームによって特定され、2011年7月13日に公開されました。
影響を受けるバージョン:5.5.0-5.5.33
重要:情報漏えい CVE-2011-2729
機能コードのバグにより、jsvc(Commons Daemon プロジェクトの一部である Linux 用サービスラッパー)は、アプリケーションがスーパーユーザーが所有するファイルやディレクトリにアクセスできるようにする機能をドロップしません。この脆弱性は、以下のすべてが真である場合にのみ発生します。
- Tomcat が Linux オペレーティングシステムで実行されている
- jsvc が libcap でコンパイルされている
- -user パラメータが使用されている
影響を受ける Tomcat バージョンには、この脆弱性を含む jsvc のソースファイルが同梱されていました。
これはリビジョン 1159346で修正されました。
これは2011年7月20日に Wilfried Weissmann 氏によって特定され、2011年8月12日に公開されました。
影響を受けるバージョン:5.5.32-5.5.33
重要:認証バイパスおよび情報漏えい CVE-2011-3190
Apache Tomcat は、リバースプロキシから Tomcat にリクエストと関連データを渡すために使用される AJP プロトコルをサポートしています。AJP プロトコルは、リクエストにリクエストボディが含まれる場合、リクエストボディの最初の部分(またはすべて)を含む未承諾の AJP メッセージが Tomcat に送信されるように設計されています。特定の状況下で、Tomcat はこのメッセージをリクエストボディとして処理せず、新しいリクエストとして処理しました。これにより、攻撃者は AJP メッセージを完全に制御でき、認証バイパスと情報漏えいが可能になりました。この脆弱性は、以下のすべてが真である場合にのみ発生します。
- org.apache.jk.server.JkCoyoteHandler AJP コネクタが使用されていない
- POST リクエストが受け入れられる
- リクエストボディが処理されない
これはリビジョン 1162960で修正されました。
これは2011年8月20日に公開されました。
影響を受けるバージョン:5.5.0-5.5.33
軽減策
- Tomcat 5.5.34 にアップグレードする。
- 適切なパッチを適用する。
- Tomcat とリバースプロキシの両方を共有シークレットを使用するように設定する。
(AJP <Connector> の "request.secret
" 属性、mod_jk の "worker.workername.secret
" ディレクティブです。mod_proxy_ajp モジュールは現在、共有シークレットをサポートしていません)。
- org.apache.jk.server.JkCoyoteHandler (BIO) AJP コネクタ実装を使用する。
(Tomcat-Native ライブラリがインストールされていない場合、自動的に選択されます。明示的に選択することもできます:<Connector protocol="org.apache.jk.server.JkCoyoteHandler">
)。
参照
2011年2月1日リリース Apache Tomcat 5.5.32 で修正済み
低:クロスサイトスクリプティング CVE-2011-0013
HTML Manager インターフェースは、表示名などのウェブアプリケーションから提供されたデータをフィルタリングせずに表示していました。悪意のあるウェブアプリケーションは、管理ユーザーがマネージャーページを表示する際にスクリプトの実行をトリガーする可能性がありました。
これはリビジョン 1057518で修正されました。
これは2010年11月12日に Tomcat セキュリティチームによって特定され、2011年2月5日に公開されました。
影響を受けるバージョン:5.5.0-5.5.31
2010年7月9日リリース Apache Tomcat 5.5.30 で修正済み
低:SecurityManager ファイル権限バイパス CVE-2010-3718
SecurityManager の下で実行されている場合、ファイルシステムへのアクセスは制限されますが、ウェブアプリケーションは作業ディレクトリへの読み書き権限が付与されます。このディレクトリは、JSP をサーブレットにコンパイルする際に生成される中間ファイルなど、さまざまな一時ファイルに使用されます。作業ディレクトリの場所は、ウェブアプリケーションに対して読み取り専用であるべき ServletContext 属性によって指定されます。しかし、コーディングエラーにより、読み取り専用設定が適用されていませんでした。そのため、悪意のあるウェブアプリケーションは、Tomcat がファイル権限を適用する前に属性を変更する可能性があります。これは、悪意のあるウェブアプリケーションが利用できるファイルシステムの任意の領域に読み書き権限を付与するために使用できます。この脆弱性は、共有ホスティング環境などの信頼できないソースからウェブアプリケーションをホストしている場合にのみ適用されます。
これはリビジョン 1027610で修正されました。
これは2010年10月12日に Tomcat セキュリティチームによって発見され、2011年2月5日に公開されました。
影響を受けるバージョン:5.5.0-5.5.29
重要:リモートからのサービス拒否および情報漏えい脆弱性 CVE-2010-2227
'Transfer-Encoding' ヘッダーの処理におけるいくつかの欠陥が発見され、バッファのリサイクルを妨げていました。リモートの攻撃者はこの欠陥を悪用し、後続のリクエストの失敗や、リクエスト間の情報漏えいを引き起こす可能性がありました。この欠陥は、Tomcat がリバースプロキシ (Apache httpd 2.2 など) の背後にある場合に緩和されます。プロキシは不正な転送エンコーディングヘッダーを拒否するはずだからです。
これはリビジョン 959428で修正されました。
これは2010年6月14日に Tomcat セキュリティチームに初めて報告され、2010年7月9日に公開されました。
影響を受けるバージョン:5.5.0-5.5.29
低:認証ヘッダー内の情報漏えい CVE-2010-1157
BASIC および DIGEST 認証の WWW-Authenticate
HTTP ヘッダーにはレルム名が含まれています。web.xml でアプリケーションに <realm-name>
要素が指定されている場合、それが使用されます。しかし、<realm-name>
が指定されていない場合、Tomcat はコードスニペット request.getServerName() + ":" + request.getServerPort()
を使用してレルム名を生成します。場合によっては、これが Tomcat が実行されているマシンのローカルホスト名または IP アドレスを公開する可能性があります。
これはリビジョン 936541で修正されました。
これは2009年12月31日に Tomcat セキュリティチームに初めて報告され、2010年4月21日に公開されました。
影響を受けるバージョン:5.5.0-5.5.29
2010年4月20日リリース Apache Tomcat 5.5.29 で修正済み
低:デプロイ時の任意のファイル削除および/または変更 CVE-2009-2693
WAR ファイルをデプロイする際、WAR ファイルのディレクトリトラバーサル試行がチェックされていませんでした。これにより、攻撃者は WAR に ../../bin/catalina.sh
のようなエントリを含めることで、ウェブルート外に任意のコンテンツを作成することが可能でした。
これはリビジョン 902650で修正されました。
これは2009年7月30日に Tomcat セキュリティチームに初めて報告され、2010年3月1日に公開されました。
影響を受けるバージョン:5.5.0-5.5.28
低:アンデプロイ失敗後の安全でない部分的デプロイ CVE-2009-2901
デフォルトでは、Tomcat はホストの appBase に配置されたディレクトリを自動的にデプロイします。この動作は、ホストの autoDeploy 属性によって制御され、デフォルトは true です。アンデプロイが失敗した後、残りのファイルは自動デプロイプロセスによってデプロイされます。状況によっては、通常1つ以上のセキュリティ制約によって保護されているファイルが、それらのセキュリティ制約なしにデプロイされ、認証なしでアクセスできるようになる可能性があります。この問題は Windows プラットフォームにのみ影響します。
これはリビジョン 902650で修正されました。
これは2009年7月30日に Tomcat セキュリティチームに初めて報告され、2010年3月1日に公開されました。
影響を受けるバージョン:5.5.0-5.5.28 (Windows のみ)
低:作業ディレクトリでの予期せぬファイル削除 CVE-2009-2902
WAR ファイルをデプロイする際、WAR ファイル名がディレクトリトラバーサル試行に対してチェックされていませんでした。例えば、...war
をデプロイおよびアンデプロイすると、攻撃者はホストの作業ディレクトリの現在のコンテンツを削除させることができ、現在実行中のアプリケーションに問題を引き起こす可能性があります。
これはリビジョン 902650で修正されました。
これは2009年7月30日に Tomcat セキュリティチームに初めて報告され、2010年3月1日に公開されました。
影響を受けるバージョン:5.5.0-5.5.28
低:安全でないデフォルトパスワード CVE-2009-3548
Windows インストーラーは、管理ユーザーのパスワードをデフォルトで空にしています。インストールプロセス中にこれが変更されない場合、デフォルトで admin という名前、admin および manager ロール、空のパスワードを持つユーザーが作成されます。
影響を受けるバージョン:5.5.0-5.5.28
これは2009年10月26日に Tomcat セキュリティチームに初めて報告され、2009年11月9日に公開されました。
これはリビジョン 919006で修正されました。
2009年9月4日リリース Apache Tomcat 5.5.28 で修正済み
重要:情報漏えい CVE-2008-5515
Request から取得した RequestDispatcher を使用する場合、クエリ文字列が削除される前にターゲットパスが正規化されていました。特別に細工されたリクエストパラメータを含むリクエストを使用すると、セキュリティ制約によって保護されているか、WEB-INF ディレクトリの下に配置されているコンテンツにアクセスできる可能性がありました。
これはリビジョン782757と783291で修正されました。
これは2008年12月11日に Tomcat セキュリティチームに初めて報告され、2009年6月8日に公開されました。
影響を受けるバージョン:5.5.0-5.5.27
重要:サービス拒否 CVE-2009-0033
Tomcat が Java AJP コネクタ経由で不正なヘッダーを持つリクエストを受信した場合、エラーを返さずに AJP 接続を閉じます。このコネクタが mod_jk ロードバランシングワーカーのメンバーである場合、このメンバーはエラー状態になり、約1分間使用がブロックされます。したがって、この動作は、慎重に作成されたリクエストを使用してサービス拒否攻撃に利用される可能性があります。
これはリビジョン 781362で修正されました。
これは2009年1月26日に Tomcat セキュリティチームに初めて報告され、2009年6月3日に公開されました。
影響を受けるバージョン:5.5.0-5.5.27
低:情報漏えい CVE-2009-0580
一部の認証クラスにおける不十分なエラーチェックのため、Tomcat は不正なURLエンコードされたパスワードを提供することでユーザー名の列挙(ブルートフォーステスト)を可能にします。この攻撃は、FORM ベース認証(j_security_check)が MemoryRealm とともに使用されている場合に可能です。初期バージョンでは、DataSourceRealm と JDBCRealm も影響を受けていたことに注意してください。
これはリビジョン 781379で修正されました。
これは2009年2月25日に Tomcat セキュリティチームに初めて報告され、2009年6月3日に公開されました。
影響を受けるバージョン:5.5.0-5.5.27 (Memory Realm), 5.5.0-5.5.5 (DataSource and JDBC Realms)
低:クロスサイトスクリプティング CVE-2009-0781
例示ウェブアプリケーションに含まれるカレンダーアプリケーションには、XSS フィルタリング保護を無効にする不正な HTML に起因する XSS の欠陥が含まれています。
これはリビジョン 750928で修正されました。
これは2009年3月5日に Tomcat セキュリティチームに初めて報告され、2009年3月6日に公開されました。
影響を受けるバージョン:5.5.0-5.5.27
低:情報漏えい CVE-2009-0783
バグ29936と45933により、ウェブアプリケーションは web.xml、context.xml、tld ファイルを処理するために Tomcat が使用する XML パーサーを置き換えることができました。限られた状況下では、これらのバグにより悪意のあるウェブアプリケーションが、Tomcat インスタンスにデプロイされている他のウェブアプリケーションの web.xml、context.xml、tld ファイルを閲覧または変更できる可能性がありました。
これはリビジョン681156と781542で修正されました。
これは2009年3月2日に Tomcat セキュリティチームに初めて報告され、2009年6月4日に公開されました。
影響を受けるバージョン:5.5.0-5.5.27
2008年9月8日リリース Apache Tomcat 5.5.27 で修正済み
低:クロスサイトスクリプティング CVE-2008-1232
HttpServletResponse.sendError() メソッドの message 引数は、エラーページに表示されるだけでなく、HTTP レスポンスの理由句としても使用されます。これには、HTTP ヘッダーでは不正な文字が含まれる可能性があります。特別に細工されたメッセージにより、任意のコンテンツが HTTP レスポンスに挿入される可能性があります。XSS 攻撃を成功させるには、フィルタリングされていないユーザー提供データが message 引数に含まれている必要があります。
これはリビジョン 680947で修正されました。
これは2008年1月24日に Tomcat セキュリティチームに初めて報告され、2008年8月1日に公開されました。
影響を受けるバージョン:5.5.0-5.5.26
低:クロスサイトスクリプティング CVE-2008-1947
Host Manager ウェブアプリケーションは、ユーザーが提供したデータを出力に含める前にエスケープしていませんでした。これにより XSS 攻撃が可能でした。このアプリケーションは、使用前にデータをフィルタリングするようになりました。この問題は、管理タスクが完了したらアプリケーションからログアウトする(ブラウザを閉じる)ことで軽減できます。
これはリビジョン 662583で修正されました。
これは2008年5月15日に Tomcat セキュリティチームに初めて報告され、2008年5月28日に公開されました。
影響を受けるバージョン:5.5.9-5.5.26
重要:情報漏えい CVE-2008-2370
RequestDispatcher を使用する場合、クエリ文字列が削除される前にターゲットパスが正規化されていました。特別に細工されたリクエストパラメータを含むリクエストを使用すると、セキュリティ制約によって保護されているか、WEB-INF ディレクトリの下に配置されているコンテンツにアクセスできる可能性がありました。
これはリビジョン 680949で修正されました。
これは2008年6月13日に Tomcat セキュリティチームに初めて報告され、2008年8月1日に公開されました。
影響を受けるバージョン:5.5.0-5.5.26
2008年2月5日リリース Apache Tomcat 5.5.26 で修正済み
低:セッションハイジャック CVE-2007-5333
CVE-2007-3385の以前の修正は不完全でした。引用符またはクッキー値内の %5C の使用が考慮されていませんでした。
影響を受けるバージョン:5.5.0-5.5.25
低:権限昇格 CVE-2007-5342
JULI ロギングコンポーネントは、ウェブアプリケーションが独自のロギング設定を提供できるようにします。デフォルトのセキュリティポリシーはこの設定を制限せず、Tomcat プロセスがファイルを作成または上書きするために必要なファイル権限を持っている場合、信頼できないウェブアプリケーションがファイルを追加したり、既存のファイルを上書きしたりすることを許可します。
影響を受けるバージョン:5.5.9-5.5.25
重要:情報漏えい CVE-2007-5461
Tomcat の WebDAV サーブレットがコンテキストで使用するように設定され、書き込みが有効になっている場合、SYSTEM タグを持つエンティティを指定する一部の WebDAV リクエストにより、任意のファイルの内容がクライアントに返される可能性があります。
影響を受けるバージョン:5.5.0-5.5.25
重要:データ整合性 CVE-2007-6286
ネイティブ (APR ベース) コネクタを使用する場合、netcat を使用して SSL ポートに接続し、データを送信せずに切断すると、Tomcat は最近のリクエストの複製コピーを処理する原因となります。
影響を受けるバージョン:5.5.11-5.5.25
2007年9月8日リリース Apache Tomcat 5.5.25、5.0.SVN で修正済み
低:クロスサイトスクリプティング CVE-2007-2449
examples ウェブアプリケーション内の JSP は、ユーザーから提供されたデータを出力に含める前にエスケープしていませんでした。これにより XSS 攻撃が可能でした。これらの JSP は、使用前にデータをフィルタリングするようになりました。この問題は、examples ウェブアプリケーションをアンデプロイすることで軽減できます。examples ウェブアプリケーションは本番システムにインストールしないことを推奨します。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.24
低:クロスサイトスクリプティング CVE-2007-2450
Manager および Host Manager ウェブアプリケーションは、ユーザーが提供したデータを出力に含める前にエスケープしていませんでした。これにより XSS 攻撃が可能でした。これらのアプリケーションは、使用前にデータをフィルタリングするようになりました。この問題は、管理タスクが完了したらアプリケーションからログアウトする(ブラウザを閉じる)ことで軽減できます。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.24
低:セッションハイジャック CVE-2007-3382
Tomcat は、クッキー値内の一重引用符文字(')を区切り文字として誤って扱っていました。特定の状況では、これによりセッション ID などの情報が攻撃者に漏洩する可能性がありました。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.24
低:セッションハイジャック CVE-2007-3385
Tomcat は、クッキー値内の文字シーケンス \" を誤って処理していました。特定の状況では、これによりセッション ID などの情報が攻撃者に漏洩する可能性がありました。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.24
低:クロスサイトスクリプティング CVE-2007-3386
Host Manager サーブレットは、表示前にユーザー提供データをフィルタリングしていませんでした。これにより XSS 攻撃が可能でした。
影響を受けるバージョン:5.5.0-5.5.24
未リリース Apache Tomcat 5.5.24、5.0.SVN で修正済み
中:クロスサイトスクリプティング CVE-2007-1355
Tomcat ドキュメントウェブアプリ内のサンプルアプリケーションに含まれる JSP およびサーブレットは、ユーザー提供データを出力に含める前にエスケープしていませんでした。これにより XSS 攻撃が可能でした。これらのページは、出力でユーザー提供データを使用しないように簡素化されました。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.23
2007年3月9日リリース Apache Tomcat 5.5.23、5.0.SVN で修正済み
重要:情報漏えい CVE-2005-2090
複数の Content-Length ヘッダーを持つリクエストは無効として拒否されるべきです。1つ以上のリクエストが複数の Content-Length ヘッダーを含み、いくつかのコンポーネントがリクエストを拒否せず、どの Content-Length ヘッダーを使用するかについて異なる決定を下す場合に、複数のコンポーネント(ファイアウォール、キャッシュ、プロキシ、Tomcat)がリクエストシーケンスを処理すると、攻撃者がウェブキャッシュを汚染したり、XSS 攻撃を実行したり、自身のものではないリクエストから機密情報を取得したりする可能性があります。Tomcat は現在、複数の Content-Length ヘッダーを持つリクエストに対して 400 を返します。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.22
未リリース Apache Tomcat 5.5.22、5.0.SVN で修正済み
重要:ディレクトリトラバーサル CVE-2007-0450
この問題の修正は不十分でした。httpd 用の JK コネクタモジュールにも修正が必要でした。CVE-2007-1860を参照してください。
Tomcat はパス区切り文字として '\'、'%2F'、'%5C' を許可します。Tomcat がプロキシ (Apache HTTP サーバーと mod_proxy および mod_jk を含むがこれに限定されない) の背後で、一部のコンテキストのみをプロキシするように設定されている場合、"/../" のような文字列を含む 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 は常にコンテキストアクセスを制限するプロキシが使用されていないかのように保護されるべきです。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.21
未リリース Apache Tomcat 5.5.21、5.0.SVN で修正済み
低:クロスサイトスクリプティング CVE-2007-1358
クライアントから送信された Accept-Language ヘッダー値を表示するウェブページは、Accept-Language ヘッダー値が RFC 2616 に準拠していると仮定している場合、クロスサイトスクリプティング攻撃に脆弱です。通常の状況ではこれは悪用できませんが、古いバージョンの Flash Player は、巧妙に細工された悪意のある Flash ファイルがそのようなカスタムヘッダーでリクエストを行うことを許可することが知られていました。getLocale()
および getLocales()
の応答を生成する際、Tomcat は RFC 2616 に準拠しない Accept-Language ヘッダーの値を無視するようになりました。生のヘッダー値を直接使用するアプリケーションは、ヘッダーが RFC 2616 に準拠していると仮定すべきではなく、値を適切にフィルタリングする必要があります。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.20
未リリース Apache Tomcat 5.5.21 で修正済み
中:セッションハイジャック CVE-2008-0128
HTTPS 経由で SingleSignOn Valve を使用する場合、Cookie JSESSIONIDSSO は「secure」属性なしで送信されるため、意図的または誤って同じサーバーから HTTP 経由でリクエストされたコンテンツに送信されてしまいます。
影響を受けるバージョン:5.0.0-5.0.SVN、5.5.0-5.5.20
低:情報漏えい CVE-2008-4308
バグ 40771により、以前のリクエストの POST されたコンテンツが漏洩する可能性があります。脆弱性が存在する条件は、ArrayIndexOutOfBoundsException が発生してリクエストの処理が停止する前に、入力ストリームから読み取られたコンテンツが応答に書き込まれるなどして開示されることです。
影響を受けるバージョン:5.5.10-5.5.20 (5.0.x は不明)
未リリース Apache Tomcat 5.5.18、5.0.SVN で修正済み
中:クロスサイトスクリプティング CVE-2006-7195
examples ウェブアプリの implicit-objects.jsp は、フィルタリングされていない多くのヘッダー値を表示していました。これにより XSS 攻撃が可能でした。これらの値は現在フィルタリングされています。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.17
2006年4月27日リリース Apache Tomcat 5.5.17、5.0.SVN で修正済み
重要:情報漏えい CVE-2007-1858
デフォルトの SSL 設定では、匿名暗号スイートを含む安全でない暗号スイートの使用が許可されていました。デフォルト設定では、安全でない暗号スイートの使用は許可されなくなりました。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.16
2006年3月15日リリース Apache Tomcat 5.5.16、5.0.SVN で修正済み
低:クロスサイトスクリプティング CVE-2006-7196
JSP の例の一部として含まれているカレンダーアプリケーションは、ユーザー提供データが返されるページに含まれる前にエスケープされていないため、クロスサイトスクリプティング攻撃に脆弱です。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.15
Apache Tomcat 5.5.13、5.0.SVN で修正済み
低:ディレクトリリスティング CVE-2006-3835
これは、ディレクトリリスティングが有効な場合の想定される動作です。セミコロン(;)はパスパラメータの区切り文字であるため、ファイル名の前に挿入すると、リクエストがパスパラメータを持つディレクトリへのリクエストに変わります。ディレクトリリスティングが有効になっている場合、ディレクトリリスティングが表示されます。これらおよびその他のディレクトリリスティングの問題に対応して、ディレクトリリスティングはデフォルトで無効に変更されました。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.12
重要:サービス拒否 CVE-2005-3510
根本的な原因は、ディレクトリリストのコンテンツを生成するために必要な比較的コストのかかる呼び出しです。ディレクトリリストが有効になっている場合、各ディレクトリのファイル数は最小限に抑える必要があります。この問題に対応して、ディレクトリリストはデフォルトで無効に変更されました。さらに、特に大規模なディレクトリの場合にパフォーマンスを向上させるために、ディレクトリリストをキャッシュするパッチが提案されています。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.12
Apache Tomcat 5.5.7、5.0.SVN で修正済み
低:クロスサイトスクリプティング CVE-2005-4838
JSP の例の一部として含まれる様々な JSP および Tomcat Manager は、ユーザー提供データが返されるページに含まれる前にエスケープされていないため、クロスサイトスクリプティング攻撃に脆弱です。
影響を受けるバージョン:5.0.0-5.0.30、5.5.0-5.5.6
Apache Tomcat 5.5.1 で修正済み
低:情報漏えい CVE-2008-3271
バグ 25835は、まれな状況(これはデバッガを使用して2つのスレッドの特定の処理シーケンスを強制した場合にのみ再現されています)で、許可されていない IP アドレスからのユーザーが RequestFilterValve を拡張するバルブで保護されたコンテキストにアクセスすることを可能にする可能性があります。これには、標準の RemoteAddrValve および RemoteHostValve の実装が含まれます。
影響を受けるバージョン:5.5.0 (5.0.x は不明)
Tomcat の脆弱性ではない
重要:リモートからのサービス拒否 CVE-2010-4476
JVM のバグにより、フォームベースのセキュリティ制約のあるページや、javax.servlet.ServletRequest.getLocale() または javax.servlet.ServletRequest.getLocales() を呼び出すページにアクセスする際に、Double 変換によって JVM がハングアップする可能性があります。特別に細工されたリクエストを使用して、サービス拒否を引き起こすことができます。
この JVM バグに対する回避策はリビジョン 1066318で提供されました。この回避策は Tomcat 5.5.33 以降に含まれています。
これは2011年2月1日に Tomcat セキュリティチームに初めて報告され、2011年1月31日に公開されました。
影響を受けるバージョン:5.5.0-5.5.32
中:TLS SSL 中間者攻撃 CVE-2009-3555
TLS プロトコルには、再ネゴシエーション中に攻撃者が任意の要求を TLS ストリームに挿入することを可能にする脆弱性が存在します。
Tomcat で使用される TLS 実装は、コネクタによって異なります。ブロッキング IO (BIO) および非ブロッキング (NIO) コネクタは、JVM が提供する JSSE 実装を使用します。APR/native コネクタは OpenSSL を使用します。
BIO コネクタは、使用されている JSSE のバージョンに脆弱性がある場合に脆弱です。JSSE に修正が提供されるまでの回避策として、新しいコネクタ属性 allowUnsafeLegacyRenegotiation
が BIO コネクタに追加されました。この脆弱性から保護するために、これを false
(デフォルト) に設定する必要があります。
NIO コネクタは再ネゴシエーションをサポートしていないため、脆弱ではありません。
APR/native の回避策は、APR/native コネクタのセキュリティページに詳しく記載されています。
再ネゴシエーションを無効にすることの影響は、アプリケーションとクライアントの両方によって異なることに注意してください。状況によっては、再ネゴシエーションを無効にすると、一部のクライアントがアプリケーションにアクセスできなくなる場合があります。
リビジョン 904851で新しい allowUnsafeLegacyRenegotiation
属性を提供する回避策が実装されました。この回避策は Tomcat 5.5.29 以降に含まれています。
このセキュリティ問題がない新しい TLS 再ネゴシエーションプロトコル(RFC 5746)のサポート
- JVM が提供する JSSE 実装を使用するコネクタの場合:Tomcat 5.5.33 で追加されました。
RFC 5746 をサポートする JRE が必要です。Oracle JRE の場合、既知のバージョンは 6u22 以降です。
- APR および OpenSSL を使用するコネクタの場合
追って通知します。APR/native コネクタのセキュリティページを参照してください。
重要:ディレクトリトラバーサル CVE-2008-2938
元々 Tomcat の脆弱性として報告されたこの問題の根本的な原因は、JVM が UTF-8 でエンコードされた URL を UTF-8 に正しくデコードしないことです。これにより、コネクタが URIEncoding="UTF-8"
を使用している場合にディレクトリトラバーサル脆弱性が露出します。このディレクトリトラバーサルは、ウェブアプリケーションの docBase に限定されます。
コンテキストが allowLinking="true"
で構成されている場合、ディレクトリトラバーサル脆弱性はホストサーバーのファイルシステム全体に拡張されます。
また、useBodyEncodingForURI="true"
を設定すると、UTF-8でエンコードされたボディを持つリクエストを処理する際に、URIEncoding="UTF-8"
を設定した場合と同じ効果があることにも注意してください。
根本原因はすぐに JVM の問題であることが特定され、複数のベンダーの複数の JVM に影響することが判明しましたが、JVM ベンダーがこの問題を解決するための更新を提供するまでは、Tomcat の脆弱性として報告することに決定されました。お使いの JVM のこの問題のステータスに関する詳細については、JVM ベンダーにお問い合わせください。
リビジョン 681029で、これと JVM にまだ存在する可能性のある同様の文字エンコーディングの問題から保護する回避策が実装されました。この回避策は Tomcat 5.5.27 以降に含まれています。
JavaMail 情報漏えい CVE-2005-1754
説明されている脆弱性は、Tomcat ではなく、Tomcat にデプロイされたウェブアプリケーション内のものです。
JavaMail 情報漏えい CVE-2005-1753
説明されている脆弱性は、Tomcat ではなく、Tomcat にデプロイされたウェブアプリケーション内のものです。