Windows 11 の権限昇格の脆弱性 CVE-2025-24076/24994:DLL ハイジャックの PoC

Windows 11 Privilege Escalation Flaws Uncovered: CVE-2025-24076 and CVE-2025-24994

2025/04/16 SecurityOnline — Microsoft Windows に存在する2つの権限昇格の脆弱性 CVE-2025-24076/CVE-2025-24994 が、Compass Security の研究者である John Ostrowski の分析結果により明らかになった。必要な権限を持たないユーザーであっても、これらの脆弱性を悪用することで、DLL ハイジャック攻撃を引き起こしり、ローカル SYSTEM レベルの権限を取得する可能性を手にするという。

この調査は、PrivescCheck の使用などによる、定期的なチェックと自動スキャンから開始された。このツールは、COM サーバ・イメージ・ファイルの、権限昇格の脆弱性を浮き彫りにした。具体的に言うと、権限のないユーザーであっても、昇格された権限で実行されている COM サーバによりロードされた、DLL ファイルを変更する可能性があることが判明した。

この脆弱性は、ユーザーもモバイル・デバイスを、Windows コンピューターにリンクするための、Windows 11 の “Mobile devices” 機能に存在する。この分析が強調するのは、ユーザーによる変更が可能な DLL が、一般ユーザーと高権限ユーザーによりロードされることである。

DLL ハイジャックとは、Windows アプリケーションが DLL をロードする方法を悪用する手法である。つまり、正規の DLL を、悪意の DLL に置き換えることで、攻撃者は DLL をロードするプロセスの権限で、任意のコードを実行できるようになる。今回のケースは、低権限のユーザーが DLL を変更し、それを高権限のユーザーがロードするため、管理者権限の取得に利用される可能性がある。

2つの脆弱性のうち、危険性の高い脆弱性 CVE-2025-24076 は、システム・プロセスが署名を検証せずに、変更が可能な DLL をロードすることから発生する。Ostrowski は、「通常のユーザーが DLL ファイルを変更し、それを高権限を持つユーザーが実行するため、これを悪用することで、ローカル・マシンの管理者権限を取得できる」と説明している。

研究者たちは、この脆弱性の悪用を証明するにあたり、いくつかの課題に直面した。

タイミング:正規の DLL を悪意の DLL に置き換えるには、約 300ミリ秒という非常に短い時間が許されるのみである。この問題を解決するために、研究者たちは、ファイルを置き換える間に、プログラムの実行を停止する Opportunistic Lock を使用した。

ファイル・ロック:Windows は、使用中のファイルに対する上書きを防ぐ仕組みを持っている。したがって、研究者たちのソリューションでは、ユーザー・アプリケーション “CrossDeviceService.exe” 内の Close 操作をインターセプトし、ファイルが使用されていないことを、上書き前に確認している。また、Microsoft の Detours ライブラリを使用して、GetFileVersionInfoExW 関数をインターセプトすることで、DLL を確実に上書きできるようにした。

DLL を単純に置き換えるだけでは、プログラムがクラッシュしてしまう。それを防ぐために、研究者たちは、関数呼び出しをオリジナルの DLL に転送すると同時に、悪意のコードを実行するプロキシ DLL を作成した。

この脆弱性 CVE-2025-24076 、はシステム・レベルのアクセスを可能にするが、もう一方の脆弱性 CVE-2025-24994CVE-2025-24994 は、関連するユーザー・レベルのプロセスが、DLL の検証に失敗することに起因する。それにより、ユーザー間攻撃への道が開かれるが、システムレベルを標的とする脆弱性に比べると、影響は遥かに小さくなる。

PoC エクスプロイトは、以下の手順が行われた:

  1. “Mobile devices” の Web カメラ機能のインストールを開始する。
  2. DLL が閉じられるのを待つ。
  3. 正規の DLL を悪意の DLL に置き換える。

これにより、低権限のユーザーであっても、Windows 11 マシンで管理者権限を取得できることが実証された。

すでに Microsoft は、2025年3 月の Patch Tuesday で、これらの脆弱性を修正している。