セキュリティ · 1 min read · Sep 29, 2025
Googleの研究者がWindows 8.1の特権昇格脆弱性を発見

Googleの研究者がWindows 8.1の特権昇格バグを発見、32/64ビット版。
Googleの研究者フォーシャがWindows 8.1に特権昇格バグを発見しました。このバグはahcache.sys/NtApphelpCacheControlに関連しており、Windows 8がWindows 8.1に更新された後に発生しました。フォーシャは2014年9月にこのバグを発見し、9月30日にGoogleセキュリティリサーチのメーリングリストに通知しました。90日間の開示期限の後、昨日この欠陥と概念実証が公開されました。
Googleの研究者チームは、欠陥が発見された同日にマイクロソフトに連絡しましたが、問題に対する何らかの行動が取られた兆候はありません。フォーシャはメーリングリストで、彼がPoCを8.1でのみテストしたことを述べており、Windows 7が脆弱かどうかはわからないとしています。
この脆弱性はahcache.sys/AhcVerifyAdminContext関数に特定されています。概念実証には2つのプログラムファイルとそれを実行するための指示が含まれており、その結果、Windowsの計算機が管理者として実行されます。フォーシャは、このバグはUAC自体にはないが、UACがバグを示すために部分的に使用されていると述べています。
マイクロソフトはこの脆弱性に対処する大きな問題を抱えており、毎月の第2火曜日に主要なパッチをリリースしています。現時点でマイクロソフトには2つの選択肢があります:
- 第2パッチ火曜日までに修正する。
- 緊急パッチを発行する(通常は0dayの悪い兆候)。
次のパッチ火曜日は2015年1月13日であり、それ以前にパッチをリリースすれば、これはゼロデイ脆弱性であると考えられます。
以下にスレッド全体を再現します:
プラットフォーム:Windows 8.1 Update 32/64ビット(他のOSはテストされていません)Windows 8.1アップデートでは、システムコールNtApphelpCacheControl(実際のコードはahcache.sysにあります)が、新しいプロセスが作成されるときにアプリケーション互換性データをキャッシュして迅速に再利用できるようにします。通常のユーザーはキャッシュを照会できますが、新しいキャッシュエントリを追加することはできません。この操作は管理者に制限されています。これはAhcVerifyAdminContext関数でチェックされます。この関数には脆弱性があり、呼び出し元の偽装トークンを正しくチェックしてユーザーが管理者であるかどうかを判断しません。呼び出し元の偽装トークンをPsReferenceImpersonationTokenを使用して読み取り、その後、トークン内のユーザーSIDとLocalSystemのSIDを比較します。トークンの偽装レベルはチェックされないため、ローカルシステムプロセスからスレッド上の識別トークンを取得し、このチェックをバイパスすることが可能です。この目的のために、PoCはBITSサービスとCOMを悪用して偽装トークンを取得しますが、他にも方法があるかもしれません。脆弱性を悪用する方法を見つけるだけの問題です。PoCでは、UAC自動昇格実行可能ファイル(たとえばComputerDefaults.exe)のキャッシュエントリが作成され、キャッシュがregsvr32のアプリ互換エントリを指すように設定され、regsvr32.exeを再読み込みするRedirectExeシムが強制されます。ただし、任意の実行可能ファイルを使用できます。トリックは、悪用するための適切な既存のアプリ互換構成を見つけることです。Windows 7が脆弱かどうかは不明です。更新のコードパスにはTCB特権チェックがあります(ただし、フラグによってはこれをバイパスできる可能性があります)。Windows 7での検証は行われていません。注意:これはUACのバグではなく、デモ目的でUAC自動昇格を使用しているだけです。PoCはWindows 8.1アップデート、32ビットおよび64ビット版の両方でテストされています。確実を期すために32ビットで実行することをお勧めします。検証するには、次の手順を実行します:1)AppCompatCache.exeとTestdll.dllをディスクに置く 2)UACが有効であることを確認し、現在のユーザーがスプリットトークン管理者であり、UAC設定がデフォルト(特定の実行可能ファイルのプロンプトなし)であることを確認します。3)コマンドプロンプトから「AppCompatCache.exe c:\windows\system32\ComputerDefaults.exe testdll.dll」というコマンドラインでAppCompatCacheを実行します。4)成功した場合、計算機が管理者として実行されているはずです。最初にうまくいかない場合(ComputerDefaultsプログラムが表示される場合)、3からエクスプロイトを再実行してください。最初の実行時にキャッシュ/タイミングの問題があるようです。このバグは90日間の開示期限の対象です。90日が経過しても広く利用可能なパッチがない場合、バグレポートは自動的に一般に公開されます。
別のユーザーは、Windows 10がこの脆弱性に対して脆弱ではないと主張し、別のユーザーはマイクロソフトの承認なしにこのようなバグを公開するGoogleの方針に疑問を呈しました。スレッドとPoCはここからアクセスできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。