Firefox の拡張 Sage
にスクリプト混入の脆弱性
Secunia の同勧告によると、RSS の content 要素の内容検査に問題があるため Sage に XSS の脆弱性があるという。content 要素は RSS 1.0 のみの要素というわけでもない。RSS 2.0 でもそれ用の XML 名前空間というものを用いれば使うことができる。
Sage の設定パネルの [コンテンツエリアで開く] の中にある [コンテンツエリアにフィードを読み込む] にチェックを入れて、Firefox のメインの画面でフィードの内容を表示させているときに、RSS 2.0 の description などは [HTML タグを許可する] のチェックを入れているとそこに書いてある img 要素や p 要素が使用されるので、べたなテキストの表示にならずに読みやすくなる。当然、その場合は description に入っている script 要素も有効になり、このとき既に XSS をしかけることができる。
だから Sage を安全に使うためには [コンテンツエリアにフィードを読み込む] にチェックを入れるのなら [HTML タグを許可する] のチェックを外す必要があるのだが、実はこのチェックを外していても script が実行できてしまうというのがこの脆弱性だ。
脆弱性が確認されたのは Sage 1.3.6、つまり最新版である。そして Secunia では解決方法や回避方法に関する言及はない。しかしながら回避方法は二つある。
一つは Sage の設定パネルの [コンテンツエリアで開く] の中にある [コンテンツエリアにフィードを読み込む] のチェックを外すことだ。これでそもそもフィード(RSS)の各アイテムの内容が Firefox の画面に表示されない。その代わり Sage の画面で [ツール]-[項目リストの表示] にチェックを入れておいて、そこに表示されるタイトルとツールチップによる内容の表示に委ねることになる。
Sage で [コンテンツエリアにフィードを読み込む] のチェックを入れていると、私の場合はうっかり今見ているページをそのままにしておきたいのにクリックしたフィードの内容に置き換えられて舌打ちをすることが多かったので、Sage をメインの RSS リーダにしているときにはこうしていた。XSS の可能性もなく安全でもある。そもそも、人が作ったフィードという常に移り変わるコンテンツをローカルのコンテンツとして表示することに違和感があったというのもある。
そしてもう一つは拡張 NoScript によってローカルのスクリプトを無効にしてしまうのだ。デフォルトでは無効だったと思う。その代わり、手元のマシンのローカルなコンテンツの JavaScript は使えない。ローカルで何か運用していたり、JavaScript で何か作っているときは不便になる。
そもそも XSS をしかけてくるようなフィードを購読しないことが Sage だろうがなんだろうが RSS リーダの脆弱性にひっかからない基本的行動だ。まずはここが肝心。その上でフィードの提供者も意図しないで XSS をしかけてしまったりとか、まんまと騙されてフィードを登録してしまったときのために上に書いたような設定で Sage を使うなどアプリケーションの設定を安全側に倒しておくのがよい。これもまた基本的行動だと思う。
とはいえ、今登録しようとしているものや、今設定しようとしていることが安全かどうかを見極めるのには知識と経験が必要で基本的行動と言っても必ずしも十分にできるわけでもないのも事実だ。だからセキュリティ関連の情報には関心を持ってほしいと思っている。.Mac と関係ないのにここでこのシリーズを続けているのはそういう主旨。
- スクリプトインジェクション対策版があります
-
ひぐまさんが「改造版Sage 1.3.6(スクリプトインジェクション対策版)ができたっぽい (ひぐまのひまグ)」でこの脆弱性の対策を施した Sage を公開しています。
ひぐまさんはその他にも改良を施した Sage を公開していらっしゃいます。Sage 愛用者は要チェックですね。
- Sage 1.3.7 で解消された模様
-
mozdev.org のバグトラック「Bug 15101 - sage fails many of the tests in the feed reader XSS test suite」によると新しいバージョン Sage 1.3.7 ではこの脆弱性は解消されたそうです。ここに寄せられた四つ目のコメントに次のようにあります。
Posted: 21:11
|
Comment
|
Trackback
以下、類似エントリです。