Geeklogに2つの脆弱性

セキュリティ

少し遅くなりましたが,Geeklog本家でセキュリティに関する記事が2件投稿されています。

  1. CSRFに関する脆弱性
  2. ksesライブラリに関するXSSの脆弱性

CSRFに関する脆弱性

前者の脆弱性は,Cross-Site Request Forgery(CSRF)と呼ばれる攻撃です。開発者チームが他のWebアプリケーションを参考にしてGeeklogのコードを査読した結果,Geeklogも同様の攻撃を受ける可能性があることが明らかになりました。残念ながらかなりの量のプログラムの変更を伴うため,Geeklog-1.5.0よりも前のバージョンでは簡単に安全策を講じることはできません。また,Geeklog-1.5.0本体の対策は済んでいますが,他のプラグインは別途,制作者による更新を待つ必要があります。

旧バージョンのGeeklogをお使いの方は,以下のことを実行することで,危険を最小限に抑えることができます。

  • Geeklogサイトでの作業が終わったらこまめにログアウトする。さらに「マイアカウント」-「認証の保存期間」を短めにする。
  • Geeklogサイトに管理者としてログインしたまま,他のサイト,特に未知のサイトを訪問しない。代案としては,2種類のWebブラウザを使用する。同一ブラウザの複数ウィンドウや複数タブでは効果がない
  • 最小限の権限を持つアカウントとより多くの権限を持つアカウントを使い分ける。たとえば,記事を投稿するのに,Rootグループに属している必要はないので,Story Admin, Topic Adminの権限しか持たないアカウントを作成して使用する。仮にこのアカウントを使用中にCSRF攻撃が成立しても,被害は最小限に抑えられる。

プラグイン制作者はGeeklog Wikiのこの記事をご覧ください。

ksesライブラリに関するXSSの脆弱性

後者の脆弱性は,Geeklog内部でHTMLのフィルタリングに使用されているksesライブラリに3つの脆弱性が見つかったというものです。そのうち2つは他の防御手段があるため,Geeklogは影響を受けません。残りの1つに対してGeeklogは脆弱ですが,ふつうにインストールしている分には影響を受けません。なぜなら,インストール後のデフォルトの状態では,HTMLタグのstyle属性は許可されていないからです。報告によると,style属性を許可した場合,Cross-Site Scripting(XSS)と呼ばれる攻撃が可能になるということです。したがって,一般ユーザ用にはstyle属性を許可せず,管理者が使用する場合も慎重に使用してください。

Geeklog-1.5.0では念のために最初の2つの脆弱性に対する対策がなされています。旧バージョンを使用している方は,このファイル(kses.class.php)をダウンロードセクションに用意しました。繰り返しますが,この2つの問題はGeeklogではすでに別の方法で対策済みなので影響はないものと思われます。

ksesライブラリはもはやメンテナンスされていないため,Geeklogの将来のバージョンでは,ksesに代わるHTMLフィルタが使用される見込みです。