安全性の向上を目的としたWindowsカーネルの変更が、かえって確実にブルースクリーンを発生させる事態を招いた。
Check Pointの研究者は、不正なEMF/EMF+メタファイルによって、新しいRustベースのGDIリージョンコンポーネントでパニックを引き起こし、最新のパッチを適用したWindows 11システムであってもクラッシュさせられることを発見した。
「この問題は、v88およびv95のループ変数が適切な保護策なしに有効な上限を超えてインクリメントされることが原因とみられる」と、Check Pointの研究者は述べた。
リスク
企業にとってのリスクはコード実行ではなく、大規模なサービス停止だ。細工されたメタファイルをユーザーのコンテキストでレンダリングすると、ドメイン全体のエンドポイントでブルースクリーンを発生させ、ダウンタイムやデータ損失、復旧費用につながる可能性がある。
Microsoftはこの問題を中程度の深刻度と分類し、更新プログラムで対処したが、Check Pointの調査は、セキュリティチームが運用上重大な問題として扱うべき、実用的な企業全体へのサービス拒否(DoS)概念実証(PoC)を示している。
Check Pointが発見したこと
研究者が小さなEMF/EMF+シードを使ってWindowsのグラフィックスをファジングした結果、win32kbase_rs.sys(GDIリージョンのRust実装)でSYSTEM_SERVICE_EXCEPTIONが繰り返し発生することが明らかになった。
パスからリージョンへの変換(たとえばEmfPlusDrawBeziersの後)で範囲外のインデックスに到達するとクラッシュが発生する。Rustはこれを正しく検出してパニックを起こし、その結果、システムのバグチェックに波及する。
Check Pointは、標準ユーザーセッションでGraphics::FromImage()およびDrawImage()を介して不正なEMF+レコードをレンダリングすると、Microsoftの修正前のWindows 11 24H2ビルドでカーネルパニックを一貫して引き起こせることを確認した。
脆弱性の仕組み
脆弱なビルドでは、リージョンの作成(region_from_path_mut)によって、拡大または平坦化されたパスから生成されたエッジリストが走査されていた。
特定の変異したベジェ入力やペン属性によってエッジブロックが生成され、インデックスが範囲外まで進んでいた。
Rustのpanic_bounds_check()がこれを捕捉したものの、その結果生じたパニックは、カーネルモードで正常に処理を失敗させるのではなく、オペレーティングシステム(OS)をクラッシュさせた。
Check Pointチームは、悪意のあるメタファイルをレンダリングすることで、低インテグリティーかつ非管理者のコンテキストからこのクラッシュを引き起こせることを示す概念実証を公開した。
これはサービス拒否のシナリオであり、リモートコード実行の証拠はない。しかし、複雑度が低く、可用性への影響は大きい。Microsoftはすでにこの問題のパッチをリリースしている。
緩和策
- パッチ適用:すべてのWindows 11 24H2エンドポイントをOSビルド26100.4202以降に更新し、適用を見送ったプレビュー更新プログラムが最新の累積リリースでカバーされていることを確認する。
- リスクのあるコンテンツをブロック:メール、Web、コラボレーションツール内のEMF/EMF+ファイルをブロックまたは削除し、実行ファイルに類するコンテンツとして扱う。代わりにPNGやJPEGなどの安全な形式を使用する。
- レンダリング経路を強化:信頼できない添付ファイルは、保護ビューまたはサンドボックス化されたビューアーでのみ開き、可能な場合はメールクライアントでメタファイルの自動プレビューを無効にする。
- 検知と対応:メタファイルの活動に関連するBugCheck 0x3Bエラーを監視し、複数のシステムでwin32kのクラッシュテレメトリーに異常な急増がないか調査する。
- ユーザートレーニング:予期しない画像・グラフィックファイルの添付や共有コンテンツには注意するよう、ユーザーを教育する。
ユーザーが制御する入力によってカーネルパニックの経路を引き起こせる場合、それは事実上、確実なサービス拒否(DoS)ベクトルとなる。
組織は、メモリーセーフな書き換えに加え、強力なエラーハンドリングと徹底したファジングテストを組み合わせるべきだ。特にグラフィックスパーサーでは、新機能を大規模に有効化する前にこれらを実施する必要がある。
可用性はセキュリティの中核要素であることを忘れてはならない。攻撃者が繰り返し引き起こせるなら、「安全な」クラッシュでさえ現実のサービス停止につながり得る。
迅速にパッチを適用し、リスクのあるファイルの入口を最小化し、サイバーレジリエンスを備えたインフラを設計することが重要だ。
ゼロトラストアプローチを採用する。





