2013/02/28

DOM Based XSS の報告

実は、自分は以前 CGI 配布などやっておりまして、5年くらい前にメンテナンスも停止していたのですが、このたび、その CGI に関して、XSS の脆弱性が見つかったので、こちらでも報告したいと思います。

該当する CGI は dopvSTAR* と dopvCOMET* の 2 つです。いずれもサーバサイドに CGI、Web ページに JavaScript コードを追記してログを取得し、アクセス解析が行えるものです。

問題があったのは、配布サイトに掲載していたログ取得用の JavaScript コードです。現在は、問題点を修正済みです(CGI自体のダウンロードは数年前から停止しています)。現在もご利用の方がいらっしゃいましたら、ただちに対処をお願いいたします。

DOM Based XSS

XSS の内容は、いわゆる DOM Based XSS というものに該当し、ログ取得用の JavaScript コードが不適切でした。以下のようなコードが該当します。

var rf = document.referrer;
document.write(rf);

document.referrer はブラウザのリンク元なわけですが、ユーザ自身の書き換えや、第三者によっても、例えばリンクやリダイレクトを介して入力値がコントロール可能です。つまり、外部入力に該当する document.referrer をそのまま document.write に渡してはいけないということになりますが、考慮が漏れておりました。

対応としては、以下のようにエスケープをします。

var rf = encodeURIComponent(document.referrer);
document.write(rf);

大変お手数ですが、該当ツールをご利用中の皆様は、ただちに上記対応をよろしくお願いいたします。

See Also

サイト内検索