2018年開始早々IntelのCPUなどに影響する脆弱性「Meltdown」と「Spectre」が好評され大きな話題となりました。対策にはOSの修正が必要とされ、Microsoftは1月早々からMeltdownパッチを公開していましたが、このパッチによって別の脆弱性が発生していたことが指摘されています(Softpedia)。
今回の問題はセキュリティ研究者Ulf Frisk氏が発見したもので、同氏は、Microsoftが1月に公開したMeltdownパッチをWindows 7またはWindows Server 2008 R2に適用すると、通常のプロセスからシステムの物理メモリが完全に読み書き可能になると脆弱性を説明しています。
技術的な原因は単純で、Windows 7ではアドレス固定となっているPML4(CPU Memory Management Unit(MMU)が使用する4レベルのページテーブル階層)の自己参照のための特別なエントリーの許可ビットが、本来"Supervisor"に設定されていないといけないにもかかわらず、"User"になっていたためとのこと。
この結果、ユーザーモードで実行されるプログラムからも、ページテーブルへのアクセスが可能となり、ページテーブルのリードライトアクセスが可能となれば、仮想化で使用されるExtended Page Tableによる追加の保護がないかぎり、完全な物理メモリのアクセスが可能なるそうです。
同氏はPCILeech direct memory access attack toolkitを利用すれば誰でも脆弱性を再現できるとして、ツールの使用方法なども説明しています。詳細はブログでご確認ください。
今回の脆弱性はWindows 7とWindows Server 2008 R2で1月または2月のMeltdownパッチがあたったマシンにだけ影響します。3月の更新プログラムを適用したシステムまたは、Windows 8.1/Windows 10マシンなどには影響しません。
Hacker Newsでは今回の不具合は、開発者が非常に複雑な問題を、短期間で極めて高いプレッシャーのもと解決する必要があったために発生したと指摘するコメントなどが書き込まれています。