Hiki Advisory 2004-07-12
Hiki の脆弱性に関する報告
Hiki Development Team
2004-07-12
I. 概要
Ruby で実装された Wiki エンジンの一種である Hiki に、深刻な脆弱性が発見されました。結果として、遠隔から第三者が Hiki の CGI プログラムを実行しているユーザ権限を取得する可能性があります。また、クロスサイトスクリプティング脆弱性も存在します。
II. 問題点
(1) 管理認証をバイパスできる (<= 0.6.3, 0.7-devel-20040407)
パスワードを設定して運用している Hiki では、「管理」リンクをたどるとまずパスワードを求められ、その認証の成功後に管理モードに推移し、それ以降はパスワードの入力なしに「OK」リンクをたどることにより設定の変更をすることになっていますが、セッション管理をしていないため、この最後に発行される CGI クエリーを作為的に作り出すことで、管理認証なしに設定の変更が可能になっていました。
(2) 設定ファイルに任意の Ruby コードを埋め込むことができる (<= 0.6.4, 0.7-devel-20040618)
管理モードでの設定変更をファイルに書き出す処理において、エスケープ処理が無いもしくは不完全であったため、設定ファイルに任意の Ruby コードを埋め込むことが可能になっていました。この設定ファイルは Hiki を呼び出す度に Kernel#eval されるため、Hiki の CGI が動作するユーザ権限で任意のコマンドを動作させることが可能になっていました。
0.6.3 以前および 0.7-devel-20040407 以前においては (1) の脆弱性があるため、任意の第三者がこの脆弱性を悪用することが可能になっていました。また、0.6.4 および 0.7-devel-20040618 においても、HikiFarm 設置環境では任意の第三者がパスワード無しの Hiki を作ることができるため、この脆弱性を悪用することが可能になっていました。
(3) クロスサイトスクリプティング (XSS) 脆弱性がある (<= 0.6.4, 0.7-devel-20040618)
0.6.4 および 0.7-devel-20040618 では、以下において HTML のエスケープ処理が不十分であったため、XSS 脆弱性がありました。
- base_css と theme_url の出力
- 検索結果の出力
- 編集モードのページ名の出力
- attach プラグインのページ名の出力
- local_css プラグインの theme_url と local_theme_url の出力
- pagerank プラグインのタイトルとスタイルシートと内容の出力
0.6.3 以前および 0.7-devel-20040407 以前では、 上記に加えて、以下において HTML のエスケープ処理が不十分であったため、XSS 脆弱性がありました。
- <title> の出力
- rss プラグインの出力
III. 修正点
(1) 管理認証のパイパス
「管理」リンクをたどった時にセッションを作り、設定の変更をする際にそのセッションを確認することで、管理認証のバイパスをできないように修正しました。
(2) 設定ファイルへの Ruby コードの埋め込み
設定項目のクラスが String のものについては String#dump を、TrueClass および FalseClass のものについては Object#inspect を用いて文字列に変換することで、安全に Kernel#eval できる設定ファイルを書き出すように修正しました。
(3) クロスサイトスクリプティング (XSS) 脆弱性
URI 表記部分については CGI.escape を、それ以外の部分については CGI.escapeHTML を用いてエスケープすることで XSS 脆弱性を修正しました。
IV. 対策
Hiki の開発チームでは、問題への対策を施したバージョンとして 0.6.5 および 0.7.0-devel-20040626 を公開しています。各ベンダや配布元の提供するパッチの適用や問題を修正したパッケージへの更新などを至急ご検討ください。詳細については、各ベンダや配布元の提供する最新情報や関連文書をご参照ください。
[関連文書]
※ 随時更新されていますので最新版をご確認ください。
- Hiki Official Site http://hikiwiki.org/
- Hiki の脆弱性に関する注意喚起 (20040628) http://hikiwiki.org/ja/alert20040628.html
- Lazy Diary (2004-06-28) http://www.namaraii.com/diary/?date=20040628
- ふぇみにん日記 (2004-06-28) http://kazuhiko.tdiary.net/20040628.html
[改定履歴]
:2004/07/12 1.0 <http://www.namaraii.com/hiki/advisory20040712.txt.1.0>:最初の公開バージョン。 :2005/07/05 1.1 <http://hikiwiki.org/ja/advisory20040712.html>:URI の変更
Keyword(s):
References: