コンテンツ
Apache Tomcat 6.x の脆弱性
このページでは、リリースされた Apache Tomcat® 6.x のバージョンで修正されたすべてのセキュリティ脆弱性を記載しています。各脆弱性には、Apache Tomcat セキュリティチームによってセキュリティ影響度評価が付与されています。この評価はプラットフォームによって異なる場合があることに注意してください。また、既知の影響を受ける Apache Tomcat のバージョンも記載し、未確認の欠陥についてはバージョンに疑問符を付けています。
注: Tomcat の脆弱性ではないが、誤ってTomcatに対して報告された脆弱性、またはTomcatが回避策を提供している脆弱性は、このページの最後に記載されています。
Tomcat 6.0.x はサポート終了(EOL)に達しており、もはやサポートされていません。6.0.x ブランチにおけるこれ以上の脆弱性は修正されません。セキュリティ修正を入手するには、ユーザーは 8.5.x 以降にアップグレードする必要があります。
バイナリパッチは提供されないことに注意してください。ソースコードパッチを適用する必要がある場合は、使用している Apache Tomcat バージョンのビルド手順を使用してください。Tomcat 6.0 の場合、それらはbuilding.html
とBUILDING.txt
です。両方のファイルは、バイナリ配布物のwebapps/docs
サブディレクトリにあります。
Tomcat のビルドや設定、またはここに記載されている既知の脆弱性を緩和するための手順に従うことについてヘルプが必要な場合は、公開のTomcat ユーザーメーリングリストに質問を送信してください。
ここに記載されていないセキュリティ脆弱性やセキュリティに影響を与えるその他の予期しない動作に遭遇した場合、またはここでの説明が不完全な場合は、Tomcat セキュリティチームに非公開で報告してください。ご協力ありがとうございます。
目次
2017年4月7日 Apache Tomcat 6.0.53 で修正済み
重要: 情報漏えい CVE-2017-5647
ファイル送信が使用されたパイプラインリクエストの処理におけるバグにより、前のリクエストのファイル送信処理が完了すると、パイプラインリクエストが失われました。これにより、誤ったリクエストに対してレスポンスが送信されたように見える可能性がありました。例えば、リクエストA、B、Cを送信したユーザーエージェントは、リクエストAに対しては正しいレスポンスを、リクエストBに対してはリクエストCのレスポンスを、リクエストCに対してはレスポンスなしを確認する可能性がありました。
これはリビジョン1789024、1789155、および1789856で修正されました。
この問題は、2017年3月20日に Apache Tomcat セキュリティチームによって特定され、2017年4月10日に公開されました。
影響: 6.0.0 から 6.0.52
未リリース Apache Tomcat 6.0.50 で修正済み
注: 以下の問題は Apache Tomcat 6.0.49 で修正されましたが、6.0.49 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこの問題の修正を含むバージョンを入手するために 6.0.50 をダウンロードする必要がありますが、バージョン 6.0.49 は影響を受けるバージョンのリストには含まれていません。
重要: 情報漏えい CVE-2016-8745
NIO HTTP コネクタのファイル送信コードのエラー処理におけるバグにより、現在の Processor オブジェクトが Processor キャッシュに複数回追加される結果となりました。これにより、同じ Processor が同時リクエストに使用される可能性がありました。Processor を共有すると、セッション ID やレスポンスボディを含む(ただしこれらに限定されない)リクエスト間の情報漏えいにつながる可能性があります。
これはリビジョン1777472で修正されました。
この問題は、2016年1月3日に Apache Tomcat セキュリティチームによって 6.0.x に影響することが特定され、2017年1月5日に公開されました。
影響: 6.0.16 から 6.0.48
2016年11月15日 Apache Tomcat 6.0.48 で修正済み
重要: リモートコード実行 CVE-2016-8735
JmxRemoteLifecycleListener
は、Oracle の CVE-2016-3427 の修正を考慮して更新されていませんでした。そのため、このリスナーを使用する Tomcat インストールは、同様のリモートコード実行の脆弱性に対して脆弱なままでした。この問題は、このリスナーを使用しているインストール数が少ないこと、およびリスナーが使用されている場合でも JMX ポートが攻撃者からアクセス可能であることは非常に稀であるため、重要度「緊急」ではなく「重要」と評価されています。
これはリビジョン1767684で修正されました。
この問題は、2016年10月19日に Apache Tomcat セキュリティチームに報告され、2016年11月22日に公開されました。
影響: 6.0.0 から 6.0.47
重要: 情報漏えい CVE-2016-6816
HTTP リクエスト行をパースするコードが不正な文字を許可していました。これは、不正な文字も許可するが異なる解釈をするプロキシと組み合わせて悪用され、HTTP レスポンスにデータを注入される可能性がありました。HTTP レスポンスを操作することで、攻撃者はウェブキャッシュを汚染したり、XSS 攻撃を実行したり、自分のものではないリクエストから機密情報を取得したりする可能性がありました。
これはリビジョン1767683で修正されました。
この問題は、2016年10月11日に Apache Tomcat セキュリティチームに報告され、2016年11月22日に公開されました。
影響: 6.0.0 から 6.0.47
2016年10月16日 Apache Tomcat 6.0.47 で修正済み
注: 以下の問題は Apache Tomcat 6.0.46 で修正されましたが、6.0.46 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこれらの問題の修正を含むバージョンを入手するために 6.0.47 をダウンロードする必要がありますが、バージョン 6.0.46 は影響を受けるバージョンのリストには含まれていません。
低: グローバルリソースへの無制限アクセス CVE-2016-6797
ResourceLinkFactory は、Web アプリケーションのグローバル JNDI リソースへのアクセスを、Web アプリケーションに明示的にリンクされているリソースに限定していませんでした。そのため、明示的な ResourceLink が設定されているかどうかにかかわらず、Web アプリケーションがあらゆるグローバル JNDI リソースにアクセスできる可能性がありました。
これはリビジョン1757285で修正されました。
この問題は、2016年1月18日に Apache Tomcat セキュリティチームによって特定され、2016年10月27日に公開されました。
影響: 6.0.0 から 6.0.45
低: セキュリティマネージャーのバイパス CVE-2016-6796
悪意のある Web アプリケーションが、JSP サーブレットの構成パラメータを操作することで、設定された SecurityManager をバイパスできる可能性がありました。
これはリビジョン1758496および1763237で修正されました。
この問題は、2015年12月27日に Apache Tomcat セキュリティチームによって特定され、2016年10月27日に公開されました。
影響: 6.0.0 から 6.0.45
低: システムプロパティの漏えい CVE-2016-6794
SecurityManager が設定されている場合、Web アプリケーションがシステムプロパティを読み取る能力は SecurityManager によって制御されるべきです。Tomcat の設定ファイルにおけるシステムプロパティ置換機能は、悪意のある Web アプリケーションによって SecurityManager をバイパスし、表示されるべきではないシステムプロパティを読み取るために使用される可能性がありました。
これはリビジョン1754733で修正されました。
この問題は、2015年12月27日に Apache Tomcat セキュリティチームによって特定され、2016年10月27日に公開されました。
影響: 6.0.0 から 6.0.45
低: セキュリティマネージャーのバイパス CVE-2016-5018
悪意のある Web アプリケーションが、Web アプリケーションからアクセス可能な Tomcat ユーティリティメソッドを介して、設定された SecurityManager をバイパスできる可能性がありました。
これはリビジョン1754904および1761718で修正されました。
この問題は、HP Enterprise Security Team の Alvaro Munoz 氏と Alexander Mirosh 氏によって発見され、2016年7月5日に Apache Tomcat セキュリティチームに報告されました。2016年10月27日に公開されました。
影響: 6.0.0 から 6.0.45
低: タイミング攻撃 CVE-2016-0762
Realm の実装は、提供されたユーザー名が存在しない場合、提供されたパスワードを処理しませんでした。これにより、タイミング攻撃によって有効なユーザー名を特定できる可能性がありました。デフォルトの構成には LockOutRealm が含まれており、この脆弱性の悪用をより困難にしていることに注意してください。
これはリビジョン1758506で修正されました。
この問題は、2016年1月1日に Apache Tomcat セキュリティチームによって特定され、2016年10月27日に公開されました。
影響: 6.0.0 から 6.0.45
2016年2月11日 Apache Tomcat 6.0.45 で修正済み
低: 制限付きディレクトリトラバーサル CVE-2015-5174
この問題は、セキュリティマネージャーの下で信頼されていない Web アプリケーションを実行しているユーザーにのみ影響します。
ServletContext
メソッド getResource()
、getResourceAsStream()
、および getResourcePaths()
を介してリソースにアクセスする場合、パスは現在の Web アプリケーションに制限されるべきです。検証が不正確であり、"/.."
の形式のパスが拒否されませんでした。"/../"
で始まるパスは正しく拒否されたことに注意してください。このバグにより、セキュリティマネージャーの下で実行されている悪意のある Web アプリケーションが、Web アプリケーションがデプロイされたディレクトリのディレクトリリスティングを取得できる可能性がありました。これは、セキュリティマネージャーの下で実行されている場合には起こりえないはずです。通常、公開されるディレクトリリスティングは $CATALINA_BASE/webapps
のものでした。
これはリビジョン1700900で修正されました。
この問題は、2015年8月12日に Tomcat セキュリティチームによって特定され、2016年2月22日に公開されました。
影響: 6.0.0 から 6.0.44
低: ディレクトリの開示 CVE-2015-5345
スラッシュで終わらない URL を使用してセキュリティ制約によって保護されたディレクトリにアクセスした場合、Tomcat はセキュリティ制約を処理する前に末尾にスラッシュが付いた URL にリダイレクトし、そのディレクトリの存在を確認していました。したがって、ユーザーは、ディレクトリを表示する権限がない場合でも、ディレクトリが存在するかどうかを判断できる可能性がありました。この問題は、Web アプリケーションのルートでも発生し、その場合、ユーザーがアクセス権を持たない場合でも、Web アプリケーションの存在が確認されました。
解決策は、DefaultServlet にリダイレクトを実装し、リダイレクトの前にすべてのセキュリティ制約やセキュリティ強制フィルタが処理されるようにすることでした。Tomcat チームは、リダイレクトの移動がリグレッションを引き起こす可能性があることを認識し、2つの新しい Context 構成オプション(mapperContextRootRedirectEnabled
と mapperDirectoryRedirectEnabled
)を導入しました。当初のデフォルトは、より安全であるため両方とも false
でした。しかし、Bug 58765 のようなリグレッションのため、mapperContextRootRedirectEnabled
のデフォルトは後に true に変更されました。これは、特定のパスに Web アプリケーションがデプロイされているかどうかを判断できることに関連するセキュリティリスクよりも、リグレッションの方が深刻であると見なされたためです。
これはリビジョン1715216および1717216で修正されました。
この問題は、2015年10月12日に QCSec の Mark Koek 氏によって特定され、2016年2月22日に公開されました。
影響: 6.0.0 から 6.0.44
低: セキュリティマネージャーのバイパス CVE-2016-0706
この問題は、セキュリティマネージャーの下で信頼されていない Web アプリケーションを実行しているユーザーにのみ影響します。
Security Manager が設定されている場合、内部の StatusManagerServlet が悪意のある Web アプリケーションによってロードされる可能性がありました。このサーブレットは、展開されているすべてのアプリケーションのリストと、現在処理されているすべてのリクエストの HTTP リクエスト行のリストを悪意のある Web アプリケーションに提供する可能性がありました。これにより、セッション ID などの他の Web アプリケーションからの機密情報が Web アプリケーションに公開される可能性がありました。
これはリビジョン1722802で修正されました。
この問題は、2015年12月27日に Tomcat セキュリティチームによって特定され、2016年2月22日に公開されました。
影響: 6.0.0 から 6.0.44
中: セキュリティマネージャーのバイパス CVE-2016-0714
この問題は、セキュリティマネージャーの下で信頼されていない Web アプリケーションを実行しているユーザーにのみ影響します。
Tomcat はいくつかのセッション永続化メカニズムを提供します。StandardManager
は再起動後もセッションを永続化します。PersistentManager
はセッションをファイル、データベース、またはカスタムの Store
に永続化できます。クラスター実装は、クラスター内の1つ以上の追加ノードにセッションを永続化します。これらのすべてのメカニズムが悪用され、セキュリティマネージャーをバイパスされる可能性がありました。セッション永続化は、Tomcat の内部コードに割り当てられた権限を持つ Tomcat コードによって実行されます。慎重に作成されたオブジェクトをセッションに配置することで、悪意のある Web アプリケーションが任意のコードの実行をトリガーできる可能性がありました。
これはリビジョン1727166および1727182で修正されました。
この問題は、2015年11月12日に Tomcat セキュリティチームによって特定され、2016年2月22日に公開されました。
影響: 6.0.0 から 6.0.44
2015年5月12日 Apache Tomcat 6.0.44 で修正済み
低: サービス拒否 CVE-2014-0230
リクエストボディを持つリクエストに対するレスポンスが、リクエストボディが完全に読み込まれる前にユーザーエージェントに返された場合、Tomcat はデフォルトで残りのリクエストボディを破棄し、接続上の次のリクエストが処理できるようにします。Tomcat が破棄するリクエストボディのサイズに制限はありませんでした。これにより、Tomcat が接続を閉じず、処理スレッドが接続に割り当てられたままになるため、限定的なサービス拒否を許容しました。
これはリビジョン1659537で修正されました。
この問題は、2014年6月4日に Baidu Security Team の AntBean@secdig 氏によって Tomcat セキュリティチームに開示され、2015年4月9日に公開されました。
影響: 6.0.0 から 6.0.43
中: セキュリティマネージャーのバイパス CVE-2014-7810
悪意のある Web アプリケーションは、特権コードセクション内で式が評価されるため、式言語を使用して Security Manager の保護をバイパスできる可能性がありました。
これはリビジョン1645366および1659538で修正されました。
この問題は、2014年11月2日に Tomcat セキュリティチームによって特定され、2015年5月14日に公開されました。
影響: 6.0.0 から 6.0.43
2014年11月22日 Apache Tomcat 6.0.43 で修正済み
注: 以下の問題は Apache Tomcat 6.0.42 で修正されましたが、6.0.42 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこの問題の修正を含むバージョンを入手するために 6.0.43 をダウンロードする必要がありますが、バージョン 6.0.42 は影響を受けるバージョンのリストには含まれていません。
重要: リクエストスマグリング CVE-2014-0227
チャンク形式のリクエストの一部として、不正な形式のチャンクを作成することが可能で、これにより Tomcat がリクエストボディの一部を新しいリクエストとして読み取る可能性がありました。
これはリビジョン1603628で修正されました。
この問題は、2014年5月30日に Tomcat セキュリティチームによって特定され、2015年2月9日に公開されました。
影響: 6.0.0 から 6.0.41
2014年5月23日リリース Apache Tomcat 6.0.41 で修正済み
注: 以下の問題は Apache Tomcat 6.0.40 で修正されましたが、6.0.40 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこれらの問題の修正を含むバージョンを入手するために 6.0.41 をダウンロードする必要がありますが、バージョン 6.0.40 は影響を受けるバージョンのリストには含まれていません。
重要: サービス拒否 CVE-2014-0075
チャンク形式のリクエストの一部として、不正な形式のチャンクサイズを作成することが可能で、これにより、リクエストに課される様々なサイズ制限をバイパスして、無制限の量のデータをサーバーにストリーミングできました。これはサービス拒否攻撃を可能にしました。
これはリビジョン1579262で修正されました。
この問題は、2014年2月28日に Red Hat Security Response Team の David Jorm 氏によって Tomcat セキュリティチームに報告され、2014年5月27日に公開されました。
影響: 6.0.0-6.0.39
重要: 情報漏えい CVE-2014-0096
デフォルトのサーブレットは、Web アプリケーションがディレクトリリストをフォーマットするために使用する XSLT を(複数のレベルで)定義することを許可しています。セキュリティマネージャーの下で実行されている場合、これらの処理は Web アプリケーションと同じ制約を受けませんでした。これにより、悪意のある Web アプリケーションは、外部 XML エンティティを使用することで、セキュリティマネージャーによって課されたファイルアクセス制約をバイパスできる可能性がありました。
これはリビジョン1585853で修正されました。
この問題は、2014年2月27日に Tomcat セキュリティチームによって特定され、2014年5月27日に公開されました。
影響: 6.0.0-6.0.39
重要: 情報漏えい CVE-2014-0099
リクエストの Content-Length ヘッダーをパースするコードは、結果のオーバーフローをチェックしませんでした。これにより、Tomcat が Content-Length ヘッダーを正しく処理するリバースプロキシの背後に配置されている場合に、リクエストスマグリングの脆弱性が露呈しました。
これはリビジョン1580473で修正されました。
パースのバグを示すテストケースは、2014年3月13日に Tomcat セキュリティチームに送信されましたが、コンテキストは提供されませんでした。セキュリティ上の影響は、報告を受けた日に Tomcat セキュリティチームによって特定され、2014年5月27日に公開されました。
影響: 6.0.0-6.0.39
低: 情報漏えい CVE-2014-0119
限られた状況下で、悪意のある Web アプリケーションが、デフォルトのサーブレット、JSP ドキュメント、タグライブラリディスクリプタ(TLD)、およびタグプラグイン構成ファイルの XSLT を処理するために Tomcat が使用する XML パーサーを置き換えることが可能でした。注入された XML パーサーは、XML 外部エンティティに課せられた制限をバイパスしたり、同じ Tomcat インスタンスにデプロイされた他の Web アプリケーションのために処理された XML ファイルを可視化したりする可能性がありました。
これはリビジョン1589640、1593815および1593821で修正されました。
この問題は、2014年4月12日に Tomcat セキュリティチームによって特定され、2014年5月27日に公開されました。
影響: 6.0.0-6.0.39
2014年1月31日リリース Apache Tomcat 6.0.39 で修正済み
注: 以下の問題は Apache Tomcat 6.0.38 で修正されましたが、6.0.38 のリリース投票は可決されませんでした。したがって、ユーザーはこれらの問題の修正を含むバージョンを入手するために 6.0.39 をダウンロードする必要がありますが、バージョン 6.0.38 は影響を受けるバージョンのリストには含まれていません。
低: ドキュメント Javadoc におけるフレームインジェクション CVE-2013-1571
Tomcat 6 は Java 5 でビルドされており、Java 5 はフレームインジェクションの脆弱性を持つ Javadoc を生成することが知られています。
Apache Tomcat ウェブサイトで公開されている Javadoc は、この問題が発表された日に修正されました。リリース用の Javadoc 生成はリビジョン1557724で修正されました。
この問題は、2013年6月18日に Oracle によって公開されました。
影響: 6.0.0-6.0.37
重要: 情報漏えい CVE-2013-4286
CVE-2005-2090 の修正は不完全でした。以下のケースをカバーしていませんでした。
- 任意の HTTP コネクタを介したチャンクエンコーディングを伴う content-length ヘッダー
- 任意の AJP コネクタを介した複数の content-length ヘッダー
複数の Content-Length ヘッダーを持つリクエスト、またはチャンクエンコーディングが使用されている場合に Content-Length ヘッダーを持つリクエストは、無効として拒否されるべきです。複数のコンポーネント(ファイアウォール、キャッシュ、プロキシ、および Tomcat)が、1つ以上のリクエストが複数の Content-Length ヘッダーを含むか、チャンクエンコーディングが使用されている場合に Content-Length ヘッダーを含むリクエストのシーケンスを処理し、複数のコンポーネントがそのリクエストを拒否せず、どの Content-Length ヘッダーを使用するかについて異なる決定をする場合、攻撃者はウェブキャッシュを汚染し、XSS 攻撃を実行し、自分のものではないリクエストから機密情報を取得できる可能性があります。Tomcat は現在、複数の Content-Length ヘッダーを持つリクエスト、またはチャンクエンコーディングが使用されている場合に Content-Length ヘッダーを持つリクエストを拒否します。
これはリビジョン1552565で修正されました。
この問題は、2013年8月15日に Apache Tomcat セキュリティチームによって特定され、2014年2月25日に公開されました。
影響: 6.0.0 から 6.0.37
重要: サービス拒否 CVE-2013-4322
CVE-2012-3544 の修正は不完全でした。以下のケースをカバーしていませんでした。
- チャンク拡張が制限されていなかった
- 末尾のヘッダーのコロンの後の空白が制限されていなかった
これはリビジョン1556540で修正されました。
この問題の最初の部分は、2013年8月27日に Apache Tomcat セキュリティチームによって特定され、2番目の部分は2013年11月5日に TELUS Security Labs の Saran Neti 氏によって特定されました。2014年2月25日に公開されました。
影響: 6.0.0 から 6.0.37
低: 情報漏えい CVE-2013-4590
web.xml、context.xml、*.tld、*.tagx、*.jspx などのアプリケーションが提供する XML ファイルは XXE を許可しており、これは攻撃者に Tomcat の内部情報を公開するために使用される可能性がありました。この脆弱性は、Tomcat が共有ホスティング環境などの信頼されていないソースから Web アプリケーションを実行している場合にのみ発生します。
これはリビジョン1558828で修正されました。
この問題は、2013年10月29日に Apache Tomcat セキュリティチームによって特定され、2014年2月25日に公開されました。
影響: 6.0.0 から 6.0.37
低: セッション固定 CVE-2014-0033
パスパラメータ処理に関する以前の修正(1149220)により、disableURLRewriting が true に設定されている場合でも、URL で提供されたセッション ID が考慮されるというリグレッションが発生しました。セッションはその単一のリクエストにのみ使用されることに注意してください。
これはリビジョン1558822で修正されました。
この問題は、2013年12月1日に Apache Tomcat セキュリティチームによって特定され、2014年2月25日に公開されました。
影響: 6.0.33 から 6.0.37
2013年5月3日リリース Apache Tomcat 6.0.37 で修正済み
重要: セッション固定 CVE-2013-2067
FORM 認証は、認証を必要とする最新のリクエストを現在のセッションに関連付けます。被害者がログインフォームを完了している間に、認証されたリソースへのリクエストを繰り返し送信することで、攻撃者は被害者の資格情報を使用して実行されるリクエストを注入できる可能性がありました。
認証時にセッション ID を変更するオプションは Tomcat 6.0.21 で追加されたことに注意してください。それ以前の 6.0.x リリースでは、セッション固定の防止はアプリケーションの責任でした。この脆弱性は、6.0.21 で追加された Tomcat のセッション固定保護におけるバグを表します。したがって、バージョン 6.0.21 以降のみが脆弱であるとリストされています。
これはリビジョン1417891で修正されました。
この問題は、2012年10月15日に Tomcat セキュリティチームによって特定され、2013年5月10日に公開されました。
影響: 6.0.21-6.0.36
重要: サービス拒否 CVE-2012-3544
チャンク転送エンコーディングを使用して送信されたリクエストを処理する際、Tomcat は含まれている拡張を無視するものの、制限を設けていませんでした。これにより、クライアントは無制限のデータをサーバーにストリーミングすることで、限定的な DOS (サービス拒否) 攻撃を実行できる可能性がありました。
これはリビジョン1476592で修正されました。
この問題は、2011年11月10日に Tomcat セキュリティチームに報告され、2013年5月10日に公開されました。
影響: 6.0.0-6.0.36
2012年10月19日リリース Apache Tomcat 6.0.36 で修正済み
重要: サービス拒否 CVE-2012-2733
HTTP NIO コネクタのリクエストヘッダーの許容サイズを制限するチェックは、リクエスト解析プロセスのあまりにも遅い段階で実装されていました。これにより、悪意のあるユーザーは、非常に大きなヘッダーを持つ単一のリクエストを送信することで、OutOfMemoryError を引き起こすことが可能でした。
これはリビジョン1356208で修正されました。
これは、2012年6月4日に Josh Spiewak 氏によって Tomcat セキュリティチームに報告され、2012年11月5日に公開されました。
影響: 6.0.0-6.0.35
中: DIGEST 認証の弱点 CVE-2012-3439
Tomcat の DIGEST 認証実装における3つの弱点が特定され、解決されました。
- リプレイ攻撃が許可されていた
- セッション ID が存在する場合、認証がバイパスされた。
- nonce が古いことを示す前に、ユーザー名とパスワードがチェックされていなかった。
これらの問題は DIGEST 認証のセキュリティを低下させ、特定の状況下でリプレイ攻撃を可能にしました。
これはリビジョン1380829で修正されました。
最初の問題は、2012年7月19日に Tilmann Kuhn 氏によって Tomcat セキュリティチームに報告されました。2番目と3番目の問題は、その後のコードレビュー中に Tomcat セキュリティチームによって発見されました。これら3つの問題はすべて、2012年11月5日に公開されました。
影響: 6.0.0-6.0.35
重要: セキュリティ制約のバイパス CVE-2012-3546
FORM 認証を使用している場合、他のコンポーネント(シングルサインオンバルブなど)が FormAuthenticator#authenticate()
の呼び出し前に request.setUserPrincipal()
を呼び出していた場合、URL の末尾に /j_security_check
を追加することで、FORM 認証器のセキュリティ制約チェックをバイパスすることが可能でした。
これはリビジョン1381035で修正されました。
この問題は、2012年7月13日に Tomcat セキュリティチームによって特定され、2012年12月4日に公開されました。
影響: 6.0.0-6.0.35
重要: CSRF 防止フィルターのバイパス CVE-2012-4431
リクエストにセッション識別子が存在しない状態で保護されたリソースへのリクエストが行われた場合、CSRF 防止フィルターをバイパスできる可能性がありました。
これはリビジョン1394456で修正されました。
この問題は、2012年9月8日に Tomcat セキュリティチームによって特定され、2012年12月4日に公開されました。
影響: 6.0.30-6.0.35
重要: サービス拒否 CVE-2012-4534
NIO コネクタを sendfile と HTTPS を有効にして使用している場合、クライアントがレスポンスの読み取り中に接続を切断すると、無限ループに入り、サービス拒否につながる可能性がありました。これは元々バグ 52858として報告されていました。
これはリビジョン1372035で修正されました。
このバグのセキュリティ上の影響は、2012年10月3日に Red Hat Security Response Team の Arun Neelicattu 氏によって Tomcat セキュリティチームに報告され、2012年12月4日に公開されました。
影響: 6.0.0-6.0.35
2011年12月5日リリース Apache Tomcat 6.0.35 で修正済み
注: 以下の問題は Apache Tomcat 6.0.34 で修正されましたが、6.0.34 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこの問題の修正を含むバージョンを入手するために 6.0.35 をダウンロードする必要がありますが、バージョン 6.0.34 は影響を受けるバージョンのリストには含まれていません。
重要: 情報漏えい CVE-2011-3375
パフォーマンス上の理由から、リクエストからパースされた情報は、内部リクエストオブジェクトと内部プロセッサオブジェクトの2箇所にキャッシュされることがよくあります。これらのオブジェクトは、まったく同時に再利用されるわけではありません。アクセスログに追加する必要がある特定のAn internal bug in Apache Tomcat caused HTTP header values containing the HT (horizontal tab) character to be incorrectly parsed. This allowed a limited HTTP header injection vulnerability. This was fixed in revision 1162959.エラーが発生した場合、アクセスログ記録プロセスは、リクエストオブジェクトがリサイクルされた後に、その再投入をトリガーします。しかし、リクエストオブジェクトは次のリクエストに使用される前にリサイクルされていませんでした。これにより、以前のリクエストから次のリクエストへの情報漏えい(例:リモート IP アドレス、HTTP ヘッダー)が発生しました。この問題は、必要なアクセスログエントリを生成するために、リクエストおよびレスポンスオブジェクトが再投入後にリサイクルされることを保証することで解決されました。
これはリビジョン 1185998で修正されました。
これは、2011年9月22日に Tomcat セキュリティチームによって特定され、2012年1月17日に公開されました。
影響: 6.0.30-6.0.33
重要: 認証バイパスと情報漏えい CVE-2011-3190
Apache Tomcat は AJP プロトコルをサポートしており、これはリバースプロキシと共に使用され、リクエストとその関連データをリバースプロキシから Tomcat に渡します。AJP プロトコルは、リクエストにリクエストボディが含まれている場合、リクエストボディの最初の部分(またはすべて)を含む未承諾の AJP メッセージが Tomcat に送信されるように設計されています。特定の状況下で、Tomcat はこのメッセージをリクエストボディとしてではなく、新しいリクエストとして処理しませんでした。これにより、攻撃者は AJP メッセージを完全に制御でき、認証バイパスと情報漏えいを可能にしました。この脆弱性は、以下のすべてが真である場合にのみ発生します。
- org.apache.jk.server.JkCoyoteHandler AJP コネクタが使用されていない
- POST リクエストが受け入れられる
- リクエストボディが処理されない
これはリビジョン 1162959で修正されました。
これは2011年8月20日に公開報告されました。
影響: 6.0.0-6.0.33
緩和策
- Tomcat 6.0.35 にアップグレードする。
- 適切なパッチを適用する。
- 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">
として明示的に選択することも可能です)。
参照
重要: サービス拒否 CVE-2012-0022
最近のハッシュ衝突脆弱性の分析により、Apache Tomcat が多数のパラメータとパラメータ値を処理する際の、関連性のない非効率性が特定されました。これらの非効率性により、攻撃者は特殊な細工を施したリクエストを通じて、大量の CPU を使用させ、結果としてサービス拒否を引き起こす可能性がありました。この問題は、多数のパラメータとパラメータ値を効率的に処理するために Tomcat のパラメータ処理コードを修正することで対処されました。
これはリビジョン1200601、1206324および1229027で修正されました。
これは、2011年10月21日に Tomcat セキュリティチームによって特定され、2012年1月17日に公開されました。
影響: 6.0.0-6.0.33
2011年8月18日リリース Apache Tomcat 6.0.33 で修正済み
中: HTTP DIGEST 認証における複数の弱点 CVE-2011-1184
注: Mitre はこの問題を複数の問題に分割し、この問題の一部に対して以下の追加参照を割り当てました: CVE-2011-5062、CVE-2011-5063、およびCVE-2011-5064。Apache Tomcat セキュリティチームは、参照CVE-2011-1184を使用してこれを単一の問題として扱い続けます。
HTTP DIGEST 認証の実装にはいくつかの弱点があることが判明しました。
- リプレイ攻撃が許可されていた
- サーバー nonce がチェックされていなかった
- クライアント nonce count がチェックされていなかった
- qop 値がチェックされていなかった
- realm 値がチェックされていなかった
- サーバーシークレットが既知の文字列にハードコードされていた
これらの弱点の結果、DIGEST 認証は BASIC 認証と同程度のセキュリティしか提供していませんでした。
これはリビジョン 1158180で修正されました。
これは、2011年3月16日に Tomcat セキュリティチームによって特定され、2011年9月26日に公開されました。
影響: 6.0.0-6.0.32
低: 情報漏えい CVE-2011-2204
MemoryUserDatabase(tomcat-users.xml に基づく)を使用し、JMX を介してユーザーを作成する際、ユーザー作成プロセス中に例外が発生すると、JMX クライアントにユーザーのパスワードを含むエラーメッセージがトリガーされる可能性があります。このエラーメッセージは Tomcat のログにも書き込まれます。ユーザーパスワードは、JMX アクセス権を持つ管理者や tomcat-users.xml ファイルへの読み取りアクセス権を持つ管理者には表示されます。これらの権限を持たないが、ログファイルを読み取れるユーザーは、ユーザーのパスワードを発見できる可能性があります。
これはリビジョン 1140071で修正されました。
これは、2011年6月14日に Polina Genova 氏によって特定され、2011年6月27日に公開されました。
影響: 6.0.0-6.0.32
低: 情報漏えい CVE-2011-2526
Tomcat は HTTP NIO および HTTP APR コネクタで sendfile のサポートを提供しています。sendfile は DefaultServlet を介して提供されるコンテンツに対して自動的に使用され、デプロイされた Web アプリケーションはリクエスト属性を設定することで直接使用できます。これらのリクエスト属性は検証されていませんでした。セキュリティマネージャーの下で実行されている場合、この検証不足により、悪意のある Web アプリケーションは、通常セキュリティマネージャーによって防止される以下の1つまたは複数を実行できる可能性がありました。
- セキュリティマネージャーがアクセス不能にすべきファイルをユーザーに返す
- JVM を強制終了(クラッシュ)させる
さらに、これらの脆弱性は以下のすべてが真である場合にのみ発生します。
- 信頼されていない Web アプリケーションが使用されている
- SecurityManager が信頼されていない Web アプリケーションを制限するために使用されている
- HTTP NIO または HTTP APR コネクタが使用されている
- コネクタで sendfile が有効になっている(これはデフォルトです)
これはリビジョン 1146703で修正されました。
これは、2011年7月7日に Tomcat セキュリティチームによって特定され、2011年7月13日に公開されました。
影響: 6.0.0-6.0.32
重要: 情報漏えい CVE-2011-2729
機能コードのバグにより、jsvc(Commons Daemon プロジェクトの一部である Linux 用サービスラッパー)は、アプリケーションがスーパーユーザーが所有するファイルやディレクトリにアクセスすることを許可する機能を削除しませんでした。この脆弱性は、以下のすべてが真である場合にのみ発生します。
- Tomcat が Linux オペレーティングシステムで動作している
- jsvc が libcap でコンパイルされている
- -user パラメータが使用されている
影響を受ける Tomcat バージョンには、この脆弱性を含む jsvc のソースファイルが同梱されていました。
これはリビジョン 1153824で修正されました。
これは、2011年7月20日に Wilfried Weissmann 氏によって特定され、2011年8月12日に公開されました。
影響: 6.0.30-6.0.32
2011年2月3日リリース Apache Tomcat 6.0.32 で修正済み
注: 以下の問題は Apache Tomcat 6.0.31 で修正されましたが、6.0.31 リリース候補のリリース投票は可決されませんでした。したがって、ユーザーはこの問題の修正を含むバージョンを入手するために 6.0.32 をダウンロードする必要がありますが、バージョン 6.0.31 は影響を受けるバージョンのリストには含まれていません。
重要: リモートサービス拒否 CVE-2011-0534
NIO コネクタは、リクエスト行の処理中にバッファを無限に拡張します。この挙動は、巧妙に細工されたリクエストを使用してサービス拒否攻撃に利用される可能性があります。
これはリビジョン 1066313で修正されました。
これは、2011年1月27日に Tomcat セキュリティチームによって特定され、2011年2月5日に公開されました。
影響: 6.0.0-6.0.30
2011年1月13日リリース Apache Tomcat 6.0.30 で修正済み
低: クロスサイトスクリプティング CVE-2011-0013
HTML マネージャーインターフェースは、表示名などの Web アプリケーション提供データをフィルタリングせずに表示していました。悪意のある Web アプリケーションは、管理者ユーザーがマネージャーページを表示する際にスクリプト実行をトリガーできる可能性がありました。
これはリビジョン 1057270で修正されました。
これは、2010年11月12日に Tomcat セキュリティチームによって特定され、2011年2月5日に公開されました。
影響: 6.0.0-6.0.29
中: クロスサイトスクリプティング CVE-2010-4172
Manager アプリケーションは、ユーザーが提供するパラメータ sort と orderBy をフィルタリングせずに直接使用しており、クロスサイトスクリプティングを許可していました。
これはリビジョン 1037779で修正されました。
これは、2010年11月15日に Tomcat セキュリティチームに初めて報告され、2010年11月22日に公開されました。
影響: 6.0.12-6.0.29
低: SecurityManager ファイル権限バイパス CVE-2010-3718
SecurityManagerの配下で実行する場合、ファイルシステムへのアクセスは制限されますが、Webアプリケーションには作業ディレクトリへの読み取り/書き込み権限が付与されます。このディレクトリは、JSPをサーブレットにコンパイルする際に生成される中間ファイルなど、様々な一時ファイルに使用されます。作業ディレクトリの場所は、Webアプリケーションに対して読み取り専用とされるServletContect属性によって指定されます。しかし、コーディングエラーにより、読み取り専用の設定が適用されていませんでした。そのため、悪意のあるWebアプリケーションは、Tomcatがファイル権限を適用する前にこの属性を変更する可能性があります。これにより、ファイルシステム上の任意の領域に読み取り/書き込み権限を付与することが可能になり、悪意のあるWebアプリケーションがこれを悪用する可能性があります。この脆弱性は、共有ホスティング環境など、信頼できないソースからWebアプリケーションをホスティングしている場合にのみ適用されます。
これはリビジョン1022560で修正されました。
これは2010年10月12日にTomcatセキュリティチームによって発見され、2011年2月5日に公開されました。
影響: 6.0.0-6.0.29
2010年7月9日リリース Apache Tomcat 6.0.28で修正
重要: リモートからのサービス拒否および情報漏洩の脆弱性 CVE-2010-2227
'Transfer-Encoding'ヘッダの処理にいくつかの欠陥が見つかり、バッファの再利用が妨げられていました。リモートの攻撃者はこの欠陥を悪用し、後続のリクエストの失敗、またはリクエスト間の情報漏洩を引き起こす可能性がありました。この欠陥は、Tomcatがリバースプロキシ(Apache httpd 2.2など)の背後にある場合、プロキシが不正なTransfer-Encodingヘッダを拒否するため、軽減されます。
これはリビジョン958977で修正されました。
これは2010年6月14日にTomcatセキュリティチームに最初に報告され、2010年7月9日に公開されました。
影響: 6.0.0-6.0.27
注: 以下の問題はApache Tomcat 6.0.27で修正されましたが、6.0.27のリリース候補の投票は承認されませんでした。したがって、この問題の修正を含むバージョンを入手するには6.0.28をダウンロードする必要がありますが、バージョン6.0.27は影響を受けるバージョンのリストに含まれていません。
低: 認証ヘッダにおける情報漏洩 CVE-2010-1157
BASICおよびDIGEST認証用のWWW-Authenticate
HTTPヘッダにはレルム名が含まれています。web.xmlでアプリケーションに<realm-name>
要素が指定されている場合、それが使用されます。しかし、<realm-name>
が指定されていない場合、Tomcatはrequest.getServerName() + ":" + request.getServerPort()
というコードスニペットを使用してレルム名を生成します。状況によっては、これによりTomcatが動作しているマシンのローカルホスト名またはIPアドレスが公開される可能性があります。
これはリビジョン936540で修正されました。
これは2009年12月31日にTomcatセキュリティチームに最初に報告され、2010年4月21日に公開されました。
影響: 6.0.0-6.0.26
2010年1月21日リリース Apache Tomcat 6.0.24で修正
注: これらの問題はApache Tomcat 6.0.21で修正されましたが、6.0.21、6.0.22、および6.0.23のリリース候補の投票は承認されませんでした。したがって、これらの問題の修正を含むバージョンを入手するには6.0.24をダウンロードする必要がありますが、バージョン6.0.21以降は影響を受けるバージョンのリストに含まれていません。
低: デプロイ時における任意のファイルの削除および/または改ざん CVE-2009-2693
WARファイルをデプロイする際、WARファイル内のディレクトリトラバーサル試行がチェックされていませんでした。これにより、攻撃者はWARファイルに../../bin/catalina.sh
のようなエントリを含めることで、Webルート外に任意のコンテンツを作成することが可能になります。
これはリビジョン892815で修正されました。
これは2009年7月30日にTomcatセキュリティチームに最初に報告され、2010年3月1日に公開されました。
影響: 6.0.0-6.0.20
低: アンデプロイ失敗後の安全でない部分的デプロイ CVE-2009-2901
デフォルトでは、TomcatはホストのappBaseに配置されたディレクトリを自動的にデプロイします。この動作は、デフォルトでtrueとなるホストのautoDeploy属性によって制御されます。アンデプロイが失敗した後、残りのファイルは自動デプロイプロセスによってデプロイされます。状況によっては、通常1つ以上のセキュリティ制約によって保護されているファイルが、それらのセキュリティ制約なしにデプロイされ、認証なしでアクセス可能になる可能性があります。この問題はWindowsプラットフォームのみに影響します。
これはリビジョン892815で修正されました。
これは2009年7月30日にTomcatセキュリティチームに最初に報告され、2010年3月1日に公開されました。
影響: 6.0.0-6.0.20 (Windowsのみ)
低: 作業ディレクトリでの予期しないファイル削除 CVE-2009-2902
WARファイルをデプロイする際、WARファイル名内のディレクトリトラバーサル試行がチェックされていませんでした。例えば、...war
をデプロイおよびアンデプロイすることで、攻撃者はホストの作業ディレクトリの現在のコンテンツを削除させることが可能になり、現在実行中のアプリケーションに問題を引き起こす可能性があります。
これはリビジョン892815で修正されました。
これは2009年7月30日にTomcatセキュリティチームに最初に報告され、2010年3月1日に公開されました。
影響: 6.0.0-6.0.20
低: 安全でないデフォルトパスワード CVE-2009-3548
Windowsインストーラでは、管理ユーザーのパスワードがデフォルトで空白になっています。インストールプロセス中にこれを変更しない場合、デフォルトでadminという名前のユーザーが、adminおよびmanagerロールを持ち、パスワードなしで作成されます。
これはリビジョン881771で修正されました。
これは2009年10月26日にTomcatセキュリティチームに最初に報告され、2009年11月9日に公開されました。
影響: 6.0.0-6.0.20
2009年6月3日リリース Apache Tomcat 6.0.20で修正
注: これらの問題はApache Tomcat 6.0.19で修正されましたが、そのリリース候補の投票は承認されませんでした。したがって、これらの問題の修正を含むバージョンを入手するには6.0.20をダウンロードする必要がありますが、6.0.19は影響を受けるバージョンのリストに含まれていません。
重要: 情報漏洩 CVE-2008-5515
Requestから取得したRequestDispatcherを使用する際、クエリ文字列が削除される前にターゲットパスが正規化されていました。特別に細工されたリクエストパラメータを含むリクエストを使用すると、セキュリティ制約によって保護されているか、WEB-INFディレクトリに配置されているため通常はアクセスできないコンテンツにアクセスされる可能性がありました。
これはリビジョン734734で修正されました。
これは2008年12月11日にTomcatセキュリティチームに最初に報告され、2009年6月8日に公開されました。
影響: 6.0.0-6.0.18
重要: サービス拒否 CVE-2009-0033
TomcatがJava AJPコネクタ経由で不正なヘッダを持つリクエストを受け取ると、エラーを返さずにAJP接続を閉じます。このコネクタがmod_jkロードバランシングワーカーのメンバーである場合、このメンバーはエラー状態になり、約1分間使用がブロックされます。これにより、巧妙に細工されたリクエストを使用してサービス拒否攻撃に悪用される可能性があります。
これはリビジョン742915で修正されました。
これは2009年1月26日にTomcatセキュリティチームに最初に報告され、2009年6月3日に公開されました。
影響: 6.0.0-6.0.18
低: 情報漏洩 CVE-2009-0580
一部の認証クラスにおけるエラーチェックの不備により、Tomcatは不正なURLエンコードされたパスワードを提供することで、ユーザー名の列挙(ブルートフォース攻撃)を可能にします。MemoryRealmとともにFORMベース認証(j_security_check)が使用されている場合に、攻撃は可能です。
これはリビジョン747840で修正されました。
これは2009年2月25日にTomcatセキュリティチームに最初に報告され、2009年6月3日に公開されました。
影響: 6.0.0-6.0.18
低: クロスサイトスクリプティング CVE-2009-0781
examples Webアプリケーション内のカレンダーアプリケーションには、不正なHTMLによるXSSの欠陥があり、XSSフィルタリング保護が機能しなくなっていました。
これはリビジョン750924で修正されました。
これは2009年3月5日にTomcatセキュリティチームに最初に報告され、2009年3月6日に公開されました。
影響: 6.0.0-6.0.18
低: 情報漏洩 CVE-2009-0783
バグ29936と45933により、WebアプリケーションがTomcatがweb.xml、context.xml、tldファイルを処理するために使用するXMLパーサーを置き換えることが可能でした。限られた状況では、これらのバグにより悪意のあるWebアプリケーションがTomcatインスタンスにデプロイされた他のWebアプリケーションのweb.xml、context.xml、tldファイルを表示したり、変更したりする可能性がありました。
これはリビジョン652592および739522で修正されました。
これは2009年3月2日にTomcatセキュリティチームに最初に報告され、2009年6月4日に公開されました。
影響: 6.0.0-6.0.18
2008年7月31日リリース Apache Tomcat 6.0.18で修正
注: これらの問題はApache Tomcat 6.0.17で修正されましたが、そのリリース候補の投票は承認されませんでした。したがって、これらの問題の修正を含むバージョンを入手するには6.0.18をダウンロードする必要がありますが、6.0.17は影響を受けるバージョンのリストに含まれていません。
低: クロスサイトスクリプティング CVE-2008-1232
HttpServletResponse.sendError()呼び出しのメッセージ引数は、エラーページに表示されるだけでなく、HTTPレスポンスの理由句としても使用されます。これには、HTTPヘッダで不正な文字が含まれる可能性があります。特別に細工されたメッセージによって、任意のコンテンツがHTTPレスポンスに注入される可能性があります。XSS攻撃を成功させるには、フィルタリングされていないユーザー提供データがメッセージ引数に含まれている必要があります。
これはリビジョン673834で修正されました。
これは2008年1月24日にTomcatセキュリティチームに最初に報告され、2008年8月1日に公開されました。
影響: 6.0.0-6.0.16
低: クロスサイトスクリプティング CVE-2008-1947
Host Manager Webアプリケーションは、ユーザー提供データを出力に含める前にエスケープしていませんでした。これによりXSS攻撃が可能でした。このアプリケーションは現在、使用前にデータをフィルタリングしています。この問題は、管理タスクが完了したらアプリケーションからログアウト(ブラウザを閉じる)することで軽減される可能性があります。
これはリビジョン662585で修正されました。
これは2008年5月15日にTomcatセキュリティチームに最初に報告され、2008年5月28日に公開されました。
影響: 6.0.0-6.0.16
重要: 情報漏洩 CVE-2008-2370
RequestDispatcherを使用する際、クエリ文字列が削除される前にターゲットパスが正規化されていました。特別に細工されたリクエストパラメータを含むリクエストを使用すると、セキュリティ制約によって保護されているか、WEB-INFディレクトリに配置されているため通常はアクセスできないコンテンツにアクセスされる可能性がありました。
これはリビジョン673839で修正されました。
これは2008年6月13日にTomcatセキュリティチームに最初に報告され、2008年8月1日に公開されました。
影響: 6.0.0-6.0.16
2008年2月8日リリース Apache Tomcat 6.0.16で修正
低: セッションハイジャック CVE-2007-5333
CVE-2007-3385に対する以前の修正は不完全でした。クッキー値内の引用符または%5Cの使用が考慮されていませんでした。
影響: 6.0.0-6.0.14
低: 権限昇格 CVE-2007-5342
JULIロギングコンポーネントは、Webアプリケーションが独自のロギング構成を提供することを許可します。デフォルトのセキュリティポリシーはこの構成を制限せず、Tomcatプロセスが必要なファイル権限を持っている場合、信頼できないWebアプリケーションがファイルを追加したり、既存のファイルを上書きしたりすることを許可します。
影響: 6.0.0-6.0.15
重要: 情報漏洩 CVE-2007-5461
TomcatのWebDAVサーブレットがコンテキストで使用するように構成され、書き込みが有効になっている場合、SYSTEMタグを持つエンティティを指定する一部のWebDAVリクエストにより、任意のファイルの内容がクライアントに返される可能性があります。
影響: 6.0.0-6.0.14
重要: データ整合性 CVE-2007-6286
ネイティブ(APRベース)コネクタを使用する場合、netcatを使用してSSLポートに接続し、データを送信せずに切断すると、Tomcatが最近のリクエストの重複コピーを処理する原因となります。
影響: 6.0.0-6.0.15
重要: 情報漏洩 CVE-2008-0002
パラメータの処理中に例外が発生した場合(例えばクライアントが切断した場合)、そのリクエストで送信されたパラメータが、後続のリクエストの一部として誤って処理される可能性があります。
影響: 6.0.5-6.0.15
2007年8月13日リリース Apache Tomcat 6.0.14で修正
低: クロスサイトスクリプティング CVE-2007-2449
examples Webアプリケーション内のJSPは、ユーザー提供データを出力に含める前にエスケープしていませんでした。これによりXSS攻撃が可能でした。これらのJSPは現在、使用前にデータをフィルタリングしています。この問題は、examples Webアプリケーションをアンデプロイすることで軽減される可能性があります。本番システムにはexamples Webアプリケーションをインストールしないことを推奨します。
影響: 6.0.0-6.0.13
低: クロスサイトスクリプティング CVE-2007-2450
ManagerおよびHost Manager Webアプリケーションは、ユーザー提供データを出力に含める前にエスケープしていませんでした。これによりXSS攻撃が可能でした。これらのアプリケーションは現在、使用前にデータをフィルタリングしています。この問題は、管理タスクが完了したらアプリケーションからログアウト(ブラウザを閉じる)することで軽減される可能性があります。
影響: 6.0.0-6.0.13
低: セッションハイジャック CVE-2007-3382
Tomcatは、クッキー値内の一重引用符文字(')を区切り文字として誤って扱っていました。状況によっては、これによりセッションIDなどの情報が攻撃者に漏洩する可能性がありました。
影響: 6.0.0-6.0.13
低: セッションハイジャック CVE-2007-3385
Tomcatは、クッキー値内の文字シーケンス\"を誤って処理していました。状況によっては、これによりセッションIDなどの情報が攻撃者に漏洩する可能性がありました。
影響: 6.0.0-6.0.13
低: クロスサイトスクリプティング CVE-2007-3386
Host Managerサーブレットは、表示前にユーザー提供データをフィルタリングしていませんでした。これによりXSS攻撃が可能でした。
影響: 6.0.0-6.0.13
未リリース Apache Tomcat 6.0.11で修正
中: クロスサイトスクリプティング CVE-2007-1355
TomcatドキュメントWebアプリ内のサンプルアプリケーションに含まれるJSPとサーブレットは、ユーザー提供データを出力に含める前にエスケープしていませんでした。これによりXSS攻撃が可能でした。これらのページは、出力にユーザー提供データを使用しないように簡素化されました。
影響: 6.0.0-6.0.10
重要: 情報漏洩 CVE-2005-2090
複数のContent-Lengthヘッダを持つリクエストは、不正なものとして拒否されるべきです。複数のコンポーネント(ファイアウォール、キャッシュ、プロキシ、Tomcat)が、1つ以上のリクエストに複数のContent-Lengthヘッダが含まれる一連のリクエストを処理し、かついくつかのコンポーネントがそのリクエストを拒否せず、どのContent-Lengthヘッダを使用するかについて異なる決定を下す場合、攻撃者はウェブキャッシュを汚染し、XSS攻撃を実行し、自分自身のものではないリクエストから機密情報を取得することができます。Tomcatは現在、複数のContent-Lengthヘッダを持つリクエストに対して400を返します。
影響: 6.0.0-6.0.10
2007年2月28日リリース Apache Tomcat 6.0.10で修正
重要: ディレクトリトラバーサル CVE-2007-0450
Tomcatはパス区切り文字として'\'、'%2F'、'%5C'を許可しています。Tomcatが、一部のコンテキストのみをプロキシするように構成されたプロキシ(Apache HTTPサーバのmod_proxyおよびmod_jkを含むがこれに限定されない)の背後で使用されている場合、"/\\../"のような文字列を含むHTTPリクエストは、攻撃者がプロキシのコンテキスト制限を回避し、プロキシされていないコンテキストにアクセスすることを可能にする可能性があります。
以下のJavaシステムプロパティがTomcatに追加され、URL内のパス区切り文字の処理をさらに制御できるようになりました(両オプションともデフォルトはfalseです)。
-
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH
: true|false
-
org.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH
: true|false
プロキシサーバーで処理される全てのURLがTomcatでそのまま処理されることを保証することは不可能であるため、Tomcatは常にコンテキストアクセスを制限するプロキシが使用されていないかのように保護されるべきです。
影響: 6.0.0-6.0.9
2007年2月8日リリース Apache Tomcat 6.0.9で修正
中: セッションハイジャック CVE-2008-0128
https経由でSingleSignOn Valveを使用すると、Cookie JSESSIONIDSSOは"secure"属性なしで送信され、その結果、意図的またはエラーによって同じサーバーからhttp経由で要求された任意のコンテンツに送信されます。
影響: 6.0.0-6.0.8
2006年12月18日リリース Apache Tomcat 6.0.6で修正
低: クロスサイトスクリプティング CVE-2007-1358
クライアントから送信されたAccept-Languageヘッダ値を表示するWebページは、Accept-Languageヘッダ値がRFC 2616に準拠していると仮定した場合、クロスサイトスクリプティング攻撃の影響を受けやすいです。通常状況下ではこれを悪用することは不可能ですが、Flashプレーヤーの古いバージョンでは、巧妙に細工された悪意のあるFlashファイルがそのようなカスタムヘッダでリクエストを行うことが可能であることが知られていました。getLocale()
およびgetLocales()
の応答を生成する際、Tomcatは現在、RFC 2616に準拠しないAccept-Languageヘッダの値を無視します。生ヘッダ値を直接使用するアプリケーションは、ヘッダがRFC 2616に準拠していると仮定すべきではなく、値を適切にフィルタリングすべきです。
影響: 6.0.0-6.0.5
Tomcat の脆弱性ではありません
低: サービス拒否 CVE-2012-5568
BIOまたはAPR/ネイティブHTTPコネクタを使用している場合、HTTPリクエストを1バイトずつ送信すると、リクエストが完全に処理されるまでコネクションプールからスレッドを消費します。複数のリクエストを使用することで、コネクションプール内の全スレッドを消費し、サービス拒否を引き起こす可能性があります。
クライアント側のリソースとサーバー側のリソースの関係は線形であるため、Tomcatセキュリティチームはこの問題を脆弱性とは見なしていません。これは一般的なDoS問題であり、魔法のような解決策はありません。この問題はTomcatメーリングリストで何度か議論されています。これらの議論を確認するのに最適な場所は、バグ54236のレポートです。
これは2009年6月19日に公開のTomcatユーザーメーリングリストで最初に議論されました。
重要: リモートからのサービス拒否 CVE-2010-4476
JVMのバグにより、フォームベースのセキュリティ制約のあるページ、またはjavax.servlet.ServletRequest.getLocale()やjavax.servlet.ServletRequest.getLocales()を呼び出すページにアクセスする際に、Double変換がJVMをハングさせる可能性がありました。特別に細工されたリクエストを使用して、サービス拒否を引き起こすことができます。
このJVMバグに対する回避策は、リビジョン1066315で提供されました。この回避策は、Tomcat 6.0.32以降に含まれています。
これは2011年2月1日にTomcatセキュリティチームに最初に報告され、2011年1月31日に公開されました。
影響: 6.0.0-6.0.31
中: TLS SSL中間者攻撃 CVE-2009-3555
TLSプロトコルに脆弱性が存在し、攻撃者が再ネゴシエーション中にTLSストリームに任意の要求を注入することが可能です。
Tomcatが使用するTLS実装はコネクタによって異なります。ブロッキングIO(BIO)およびノンブロッキング(NIO)コネクタは、JVMによって提供されるJSSE実装を使用します。APR/ネイティブコネクタはOpenSSLを使用します。
BIOコネクタは、使用されているJSSEのバージョンに脆弱性がある場合に脆弱です。JSSEに修正が提供されるまでの回避策として、新しいコネクタ属性allowUnsafeLegacyRenegotiation
がBIOコネクタに追加されました。この脆弱性から保護するためには、false
(デフォルト)に設定すべきです。
NIOコネクタは再ネゴシエーションをサポートしていないため、脆弱ではありません。
APR/ネイティブの回避策については、APR/ネイティブコネクタセキュリティページで詳しく説明されています。
ユーザーは、再ネゴシエーションを無効にすることによる影響が、アプリケーションとクライアントの両方によって異なることに注意すべきです。状況によっては、再ネゴシエーションを無効にすることで、一部のクライアントがアプリケーションにアクセスできなくなる可能性があります。
新しいallowUnsafeLegacyRenegotiation
属性を提供する回避策が、リビジョン881774およびリビジョン891292で実装されました。この回避策はTomcat 6.0.21以降に含まれています。
このセキュリティ問題を持たない新しいTLS再ネゴシエーションプロトコル(RFC 5746)のサポート
- JVMが提供するJSSE実装を使用するコネクタの場合: Tomcat 6.0.32で追加されました。
RFC 5746をサポートするJREが必要です。Oracle JREの場合、知られているのは6u22以降です。
- APRおよびOpenSSLを使用するコネクタの場合
TBD。詳細はAPR/ネイティブコネクタセキュリティページを参照してください。
重要: ディレクトリトラバーサル CVE-2008-2938
元々Tomcatの脆弱性として報告されましたが、この問題の根本原因は、JVMがUTF-8エンコードされたURLをUTF-8に正しくデコードしないことにあります。これにより、コネクタがURIEncoding="UTF-8"
を使用している場合にディレクトリトラバーサル脆弱性が露呈します。このディレクトリトラバーサルは、WebアプリケーションのdocBaseに限定されます。
コンテキストがallowLinking="true"
で構成されている場合、ディレクトリトラバーサル脆弱性はホストサーバーのファイルシステム全体にまで拡大します。
また、UTF-8でエンコードされたボディを持つリクエストを処理する際にuseBodyEncodingForURI="true"
を設定すると、URIEncoding="UTF-8"
を設定した場合と同じ効果があることにも留意すべきです。
根本原因がJVMの問題であり、複数のベンダーの複数のJVMに影響を与えることが迅速に特定されましたが、JVMベンダーがこの問題を解決するためのアップデートを提供するまでは、これをTomcatの脆弱性として報告することに決定しました。お使いのJVMでのこの問題の状況に関する詳細については、JVMベンダーにお問い合わせください。
この問題およびJVMにまだ存在する可能性のある同様の文字エンコーディング問題から保護する回避策が、リビジョン678137で実装されました。この回避策はTomcat 6.0.18以降に含まれています。
重要: リモートメモリ読み取り CVE-2014-0160 (別名「Heartbleed」)
OpenSSLの特定のバージョンに存在するバグにより、認証されていないリモートユーザーがサーバーメモリの特定のコンテンツを読み取ることが可能になる可能性があります。tcnative 1.1.24 - 1.1.29のバイナリバージョンには、この脆弱なバージョンのOpenSSLが含まれています。tcnative 1.1.30以降は、パッチ適用済みのOpenSSLバージョンが同梱されています。
この問題は2014年4月7日に最初に公表されました。
影響: OpenSSL 1.0.1-1.0.1f, tcnative 1.1.24-1.1.29