Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ
2017年5月28日 19:49
Windows 7/8.1のNTFSで、WebページからOSを停止させることの可能なバグが発見された(Ars Technicaの記事、Aladdin RDのブログ記事、The Vergeの記事)。 NTFSのマスターファイルテーブル(MFT)は、ルートディレクトリの「$mft」というファイルに格納されている。このファイルはファイルシステム上から参照することはできず、ファイル名を直接指定して開こうとしてもアクセスは拒否される。ただし、「C:\$mft\123」のようにディレクトリ名として指定してアクセスすると、新たにプログラムが起動できなくなったり、BSoDが発生したりする。 これはディレクトリとして$mftを開くために排他アクセスを取得し、ディレクトリでないことが判明した際に$mftのERESOURCEを解放してしまうことが原因となっているようだ。そのため、Windowsを再起動しない限り、Cドライブ上のファイルへのアクセスができなくなる。管理者権限は必要なく、標準ユーザーでも実行可能だ。Windows 7/8.1のほか、Windows Vistaにも影響するそうだ。Windows 10は影響を受けない。 実際に「start c:\$mft\123」や「dir c:\$mft\」といったコマンドをWindows 7/8.1のコマンドプロンプト上で実行してみたところ、システムの動作が次第に遅くなり、最終的にBSoDになる場合や、実行直後にBSoDになる場合、BSoDは発生しないものの何も実行できなくなり、強制的に電源を切るしかない場合など、さまざまな現象が発生した。 このようなパスをWebページで「img」タグに指定すると、リモートからシステムをクラッシュできるとのことで、Windows 9x時代のconcon攻撃にたとえられている。The Vergeでは実際に画像のソースに「C:\$mft\123」を指定したWebページを用意し、Windows 7上のInternet Explorerで開いてシステムの動作が遅くなることを確認したそうだ。Microsoftはこの件について知らされているが、Ars Technicaの記事掲載時点では修正の予定に関する回答はなかったとのことだ。