ええと、今 aswiki のソースを2分間くらい読んでいるんですが、「そういうものです」という開き直ったような Web ページの書き方とは裏腹に、ひょっとしたらそもそも今回の脆弱性は存在しないかも... という気がしてきました。あとでインストールして確かめてみます。
# Content-disposition: attachment を出力している気配があります。
ですので、ここから先は脆弱性があるという前提での話としてですが...
で、元コメントですが、Wiki の「誰でも編集できる」ことそれ自体、社会的・人的被害 (SPAM とか誹謗中傷とか) というレベルでは脆弱性といえるかもしれません。それは Wiki の弱点であり、「読者側の人間は(Wiki がそういうものだと知っていれば)理性的に内容を取捨選択できる」という前提に依存したセキュリティモデルでもあります。個人的には広くインターネット全体に書き込み権限を許すのはあまり勧められた物ではないと考えてはいますが、まぁ全く許せないポリシーというわけではありません。
しかし、Wiki が独自文法を強制して、HTML タグ (特に<SCRIPT>や<OBJECT>)を書けないようにするというのは、機械的にウィルスを埋め込まれないとか、cookie を盗まれないとか、そういった web アプリケーションソフトウェアとしての基本的な安全性を保証しているという意味で、重要なsecurity featureです。機械は誤った情報を人間のように賢く取捨選択することができませんから、きちんと機械が誤動作しないような情報をクライアントに送信するのは、Webアプリケーション側の責任です。
今回の場合、きちんと処理をしておかないと、攻撃者は外部から添付ファイルにリンクを張ることで、上記の Wiki 構文の制限を回避して、Wiki 利用者(設置者)や Wiki 読者に限らず全ての Web ユーザに対し、いきなり Wiki 設置サイトの権限で任意の HTML ファイルを読み込ませ、Javascript を走らせることができます。これは、現在の Web ブラウザと Web アプリケーションの基本的な設計モデルからすれば許容できない脆弱性に当たります。
一方で、きちんと処理された Wiki やアップローダから添付ファイルを「ダウンロード」した後、そのファイルを人間が開くか開かないかは、添付付き Wiki やアップローダを使う人間の問題になります。やばいファイルが添付されていれば、やばいことが起こりますが、それは「そういうものです」。今回の XSS とは別件です。
AsWikiやHikiは該当しないのでは? (スコア:1)
http://jvn.jp/jp/JVN%23465742E4/index.html
のベンダ情報みると、AsWikiやHikiは「該当製品なし」と書いてありますが、この2つには脆弱性はないということなんじゃないですか?
Re:AsWikiやHikiは該当しないのでは? (スコア:1)
Re:AsWikiやHikiは該当しないのでは? (スコア:4, 参考になる)
「ユーザーからファイルをアップロードできる」ようにするからには、こういう危険性を回避する方法はまったくないかと思います。
たとえば、単に画像をアップできる掲示板でも、JPEGファイルを用いて任意のコードが実行できるという脆弱性 [srad.jp]による危険はあるわけですよね。
Wikiもどきの対応 [moonrock.jp]:
A.添付機能を無効に
B.アップロード元ホスト・ファイル名・Content-Type に基づく添付可否条件が設定可能
PukiWiki [pukiwiki.org]:
回避策(1) 全体をリードオンリーに
回避策(2)
Re:AsWikiやHikiは該当しないのでは? (スコア:1)
さすがに、ブラウザに脆弱性があって、Webソフト側の妥当な仕様がトリガーを引くパターンと、Wiki の仕様+ブラウザの仕様 から引き起こされる脆弱性を同一に扱うのはどうかと思いますが...。
Wikiもどきの(B)
Re:AsWikiやHikiは該当しないのでは? (スコア:0)
Wikiの「どこの誰とも知れない第三者が編集できる」って性質自体問題ってことになってしまうような。
被害を受けるのが人かマシンか、もっともそういうレベルまで落とすのならHTTPなりTCPだって同様の問題を抱えることになりますが。
有害な情報を簡単にフィルタできないUAまたは文化の問題の
Re:AsWikiやHikiは該当しないのでは? (スコア:3, すばらしい洞察)
# Content-disposition: attachment を出力している気配があります。
ですので、ここから先は脆弱性があるという前提での話としてですが...
で、元コメントですが、Wiki の「誰でも編集できる」ことそれ自体、社会的・人的被害 (SPAM とか誹謗中傷とか) というレベルでは脆弱性といえるかもしれません。それは Wiki の弱点であり、「読者側の人間は(Wiki がそういうものだと知っていれば)理性的に内容を取捨選択できる」という前提に依存したセキュリティモデルでもあります。個人的には広くインターネット全体に書き込み権限を許すのはあまり勧められた物ではないと考えてはいますが、まぁ全く許せないポリシーというわけではありません。
しかし、Wiki が独自文法を強制して、HTML タグ (特に<SCRIPT>や<OBJECT>)を書けないようにするというのは、機械的にウィルスを埋め込まれないとか、cookie を盗まれないとか、そういった web アプリケーションソフトウェアとしての基本的な安全性を保証しているという意味で、重要なsecurity featureです。機械は誤った情報を人間のように賢く取捨選択することができませんから、きちんと機械が誤動作しないような情報をクライアントに送信するのは、Webアプリケーション側の責任です。
今回の場合、きちんと処理をしておかないと、攻撃者は外部から添付ファイルにリンクを張ることで、上記の Wiki 構文の制限を回避して、Wiki 利用者(設置者)や Wiki 読者に限らず全ての Web ユーザに対し、いきなり Wiki 設置サイトの権限で任意の HTML ファイルを読み込ませ、Javascript を走らせることができます。これは、現在の Web ブラウザと Web アプリケーションの基本的な設計モデルからすれば許容できない脆弱性に当たります。
一方で、きちんと処理された Wiki やアップローダから添付ファイルを「ダウンロード」した後、そのファイルを人間が開くか開かないかは、添付付き Wiki やアップローダを使う人間の問題になります。やばいファイルが添付されていれば、やばいことが起こりますが、それは「そういうものです」。今回の XSS とは別件です。