【修正とお詫び】はてブ追加画面拡張GreasemonkeyのXSS脆弱性の修正

2007-02-22に公開したはてブ追加画面にサイトを表示するGreasemonkey : akiyan.comにXSS脆弱性がありました。申し訳ありませんでした。現在は修正されておりますので、ダウンロードされた方は再インストールをお願いいたします。

脆弱性の内容

XSS脆弱性。攻撃者は、はてブ追加画面にサイトを表示するGreasemonkey : akiyan.comを有効している状態のユーザーに対して、特定のURLにアクセスさせることで攻撃者の任意のスクリプトをb.hatena.ne.jpドメイン上で実行できてしまう。

脆弱性の修正の方法

http://www.akiyan.com/js/viewSiteAtHatenaBookmark.user.jsを再インストールしてください。

脆弱性の原因

表示されるiframe要素のsrc値のチェックを怠っていたため。

修正内容

http(s):スキーマ以外だった場合は表示しないようにしました。

src値の設定方法を変えました。

御礼

http://b.hatena.ne.jp/taninsw/20070222#bookmark-40295602にて脆弱性の指摘をいただきました。ありがとうございました。

修正後のスクリプト

// ==UserScript==
// @name           View Site at Hatena Bookmark Add
// @namespace      http://www.akiyan.com/
// @description    View Site at Hatena Bookmark Add
// @include        http://b.hatena.ne.jp/add?mode=confirm*
// ==/UserScript==

(function(){
var $ = function(id){ return document.getElementById(id); };
var $c = function(a) { return document.createElement(a) };
var $s = function(e, s) { e.setAttribute('style', s); };

$s($('body'), 'width:42%;float:left');
location.search.match(/&url=(https?(%3A|:)[^&]+)/);
var url = decodeURIComponent(RegExp.$1);
if (!url)
return;
var e = $c('iframe');
e.src = url;
$s(e, 'width:53%;height:80%;float:right');
$('container').appendChild(e);
})();

修正前のスクリプト

// ==UserScript==
// @name           View Site at Hatena Bookmark Add
// @namespace      http://www.akiyan.com/
// @description    View Site at Hatena Bookmark Add
// @include        http://b.hatena.ne.jp/add?mode=confirm*
// ==/UserScript==

(function(){
var $ = function(id){ return document.getElementById(id); };
var $c = function(a) { return document.createElement(a) };
var $s = function(e, s) { e.setAttribute('style', s); };

$s($('body'), 'width:42%;float:left');
var d = $c('div');
location.search.match(/&url=([^&]+)/);
var url = decodeURIComponent(RegExp.$1);
d.innerHTML = '<iframe style="width:100%;height:80%" src="' + url + '"></iframe>';
$s(d, 'width:53%;float:right');

$('container').appendChild(d);

})();

コメント / トラックバック

コメントは受け付けていません。