セキュリティ研究者が、Google Chrome、Internet Explorer、Apple Safari ブラウザにおける HTML5 Web Storage 標準の実装方法に抜け穴を発見しました。この抜け穴により、悪質な Web サイトが訪問者のハードディスク ドライブに大量のジャンク データを書き込む可能性があります。
HTML5 Web ストレージは、最大 4KB のサイズに制限されている Cookie を使用してこれまで可能だったよりも多くのデータを Web サイトがブラウザー内に保存できるようにする API (アプリケーション プログラミング インターフェイス) を定義します。
Web Storage APIのlocalStorage属性により、ウェブサイトは使用するブラウザに応じて、オリジン(ドメイン名)ごとに2.5MBから10MBまでのデータを保存できます。Google Chromeでは2MB、Mozilla Firefoxでは5MB、Internet Explorerでは10MBの制限が適用されます。

しかし、Webストレージ標準では、一部のウェブサイトがサブドメインからデータを保存することでストレージ制限を回避しようとする可能性があると警告しています。ワールドワイドウェブコンソーシアムが発行したこの標準には、「ユーザーエージェントは、例えばa1.example.com、a2.example.com、a3.example.comなどに上限までデータを保存するなど、オリジンサイトや関連サイトのデータを保存するサイトに対して保護する必要があります。これは、example.comのメインストレージ制限を回避するためです」と記されています。
「Chrome、Safari、IEは現在、そのような『関連サイト』のストレージ制限を実装していません」と、ウェブ開発者兼セキュリティ研究者のFeross Aboukhadijeh氏は最近のブログ投稿で述べています。ウェブサイト所有者はサブドメインを自由に生成できるため、この抜け穴を悪用して訪問者のコンピュータに実質的に無制限のストレージ容量を確保できると、彼は述べています。
アブカディジェ氏は、このトリックを使って訪問者のハードディスクドライブをジャンクデータで埋め尽くす概念実証ウェブサイトを作成した。同氏によると、このサイトはChrome 25、Safari 6、Opera 12、IE 10でテストされ、ソリッドステートドライブ(SSD)を搭載したMacBook Proに16秒ごとに1GBのデータを書き込むことができたという。
「Chromeのような32ビットブラウザでは、ディスクがいっぱいになる前にブラウザ全体がクラッシュする可能性があります」とアブカディジェ氏は述べた。「FirefoxのlocalStorageの実装はよりスマートなので」、この攻撃はFirefoxでは機能しないと彼は述べた。
Chrome開発者はChromeバグトラッカーのエントリでこの問題を認めていますが、解決策を見つけるのは容易ではないかもしれません。議論に参加した一部の関係者によると、サブドメインのlocalStorage容量をそれぞれのドメインの制限に応じて制限すると、GitHub PagesやAppspotのように、ユーザーに独自のサブドメインを提供してプロジェクトを作成しているサイトで問題が発生する可能性があるとのことです。