Windows Kernel EoP の 脆弱性 CVE-2024-21345:PoC が公開された

Windows Kernel EoP Vulnerability (CVE-2024-21345) Gets PoC Exploit Code

2024/04/27 SecurityOnline — Windows Kernel の EoP (Elevation of Privilege) に存在する、脆弱性 CVE-2024-21345 に対する PoC (proof-of-concept) エクスプロイト・コードが、セキュリティ研究者の Gabe Kirkpatrick から公開された。このエクスプロイトにより、認証された攻撃者は、SYSTEM レベルまで権限を昇格させ、影響を受けるシステムを完全に制御できるようになる。


この CVE-2024-21345 は、Windows カーネルのメモリ操作に関わる複雑な脆弱性である。具体的には、スレッドの実行環境に関する情報を、取得するためのリクエストを処理するシステムの一部である、NtQueryInformationThread システム・コールにおける二重フェッチの悪用に関するものとなる。脆弱性の仕組みは、以下の通りだ:

  1. 欠陥のトリガー:認証されたユーザーが実行できるものとして、特別に細工されたアプリケーションがある。それにより、ユーザー・モードとカーネル・モード間のデータ・コピー操作中に、長さフィールドをカーネルがフェッチする方法が操作される。
  2. ダブルフェッチの悪用:ユーザーが提供するアドレスの長さフィールドに対して、カーネルがダブルフェッチを実行することで、この欠陥は発生する。通常のケースでは、一度のフェッチにより検証は行われる。しかし、このフェッチの間に、フェッチされるデータを変更することで、検証のバイパスが可能になる。
  3. セキュリティ・チェックのバイパス:このエクスプロイトは、メモリ・アドレスへの書き込みの可否を確認する、ProbeForWrite 関数を悪用してデータ・サイズをゼロに設定することで安全対策を回避するものだ。したがって、任意のカーネル・アドレスへの書き込みが可能になる。
  4. 実行と制御:このアドレスには、スレッド環境ブロック (TEB:Thread Environment Block) が含まれる可能性があり、カーネル・メモリを操作する攻撃者には、SYSTEM 特権を獲得する可能性が生じる。

この脆弱性の悪用に成功した攻撃者は、封じ込められた実行環境を抜け出し、カーネル・レベルでシステムを制御する可能性を持つ。この種の権限昇格は、システム自身の操作と同様の、最高レベルでのアクセス権を攻撃者に提供するため、特に深刻な問題となる。

この脆弱性 CVE-2024-21345  (CVSS:8.8) にはパッチが適用されているが、その後に研究者である Gabe Kirkpatrick が、GitHub で PoC エクスプロイト・コードを公開したことで、潜在的なリスクに関するスポットライトが当たっている。

Microsoft は、2024年2月の Patch Tuesday 更新プログラムで、この欠陥に対処している。現時点において、唯一の有効な緩和策は、これらの更新プログラムを直ちにインストールすることだ。

エクスプロイト・コードが一般公開されている脆弱性は、悪用されるリスクが高い。Windows 環境の安全性を確保するために、直ちに対処することが推奨される。