Hiki Advisory 2005-05-19
Hiki の脆弱性に関する報告
Hiki Development Team
2005-05-19
I. 概要
Ruby で実装された Wiki エンジンの一種である Hiki の「ファイル添付機能」において、クロスサイト・スクリプティングにつながる問題が発見されました。悪意あるユーザがこの機能を利用し、javascript 等のスクリプトコードを含んだファイルを Hiki が稼動しているウェブサーバにアップロードした場合、このファイルを閲覧したユーザのブラウザ上でスクリプトが実行される可能性があります。
II. 問題点
Hiki のファイル添付プラグイン (attach.rb) では、'.html' という拡張子を持つ添付ファイルへの attach_anchor メソッドによるリンクに対して、Content-Type: text/html として通常の HTML ファイルと同様に返していたため、悪意のある javascript が埋め込まれた HTML をアップロードされた場合、そのファイルへのリンクにアクセスしたユーザのブラウザでそのスクリプトが実行される可能性があります。
ただし、Hiki におけるファイル添付の扱いは以下のようになっています。
- ファイル添付機能はデフォルトでは使用できない
- セキュリティを考慮してファイル添付用 CGI を Hiki 本体の CGI から独立させている。(Hiki は認証なしで運用し、ファイル添付 CGI は BASIC 認証という運用ができるように)
ですので、「悪意を持った利用者がファイル添付機能を利用する」ケースは限定されています。
III. 修正点
Hiki 0.6.6 ならびに Hiki 0.8.0 preview1 では、添付ファイルへのリンクに対して 'Content-Disposition: attachment' というヘッダを付加して、ブラウザに対して添付ファイルを Content-Type の如何にかかわらずダウンロードさせるようにすることで、この問題に対処しました。Content-Disposition ヘッダについては、RFC 2183 (RFC 1806 の改訂版) をご参照ください。
- ftp://ftp.isi.edu/in-notes/rfc2183.txt (原文)
- http://www.asahi-net.or.jp/~bd9y-ktu/dtd_f/rfc_f/rfc2183j.html (日本語訳)
IV. 対策
Hiki 開発チームでは、問題への対策を施したバージョンとして 0.6.6 および 0.8.0 preview1 を公開しています。各ベンダや配布元の提供するパッチの適用や問題を修正したパッケージへの更新などをご検討ください。詳細については、各ベンダや配布元の提供する最新情報や関連文書をご参照ください。
ただし、一部のブラウザにおいては、'Content-Disposition: attachment' というヘッダの有無にかかわらず、無条件でブラウザが HTML としてレンダリングしてしまい、結果として報告いただいた脆弱性を誘発する可能性がありますが、これについてはブラウザ側の問題であると考えます。Hiki 開発チームが確認した範囲では、'Internet Explorer 5.2.3 (Mac OS X 版)' および 'Safari 1.2.4' ではこの問題が発生する可能性がありますので、別のブラウザの利用を推奨します。
[関連文書]
※ 随時更新されていますので最新版をご確認ください。
- JVN#465742E4: Wiki クローンにおけるクロスサイトスクリプティングの脆弱性 http://jvn.jp/jp/JVN%23465742E4/
- Hiki Official Site http://hikiwiki.org/
[改定履歴]
:2005/05/19 1.0 <http://www.namaraii.com/hiki/?advisory20050519>:最初の公開バージョン。 :2005/07/05 1.1 <http://hikiwiki.org/ja/advisory20050519.html>:URI の変更
Keyword(s):
References:[ファイル添付プラグイン] [過去のニュース]