PoC Exploit Releases for Windows Elevation of Privilege Vulnerability CVE-2024-26230
2024/09/08 SecurityOnline — Windows Telephony サービスに存在する、パッチ適用済みの権限昇格の脆弱性 CVE-2024-26230 (CVSS:7.8) に対する、技術的な詳細と概念実証 PoC エクスプロイトを、セキュリティ研究者が公開した。この Telephony サービスの、use-after-free の脆弱性の悪用に成功した攻撃者は、影響を受けるシステム上で SYSTEM 権限を取得できるようになる。

Windows Telephony は RPC ベースのサービスであり、デフォルトでは無効化されているが、標準ユーザー権限で StartServiceW API を呼び出せばアクティブ化できる。この脆弱性は、Telephony の Global Handle Table 内で使用される、一意の識別子 GOLD というマジック値を持つオブジェクトを、処理する方法に起因している。
void __fastcall GetUIDllName(__int64 a1, int *a2, unsigned int a3, __int64 a4, _DWORD *a5)
{
[...]
if ( object )
{
*object = 0x474F4C44; // =====> [a]
v38 = *(_QWORD *)(contexthandle + 184);
*((_QWORD *)object + 10) = v38;
if ( v38 )
*(_QWORD *)(v38 + 72) = object;
*(_QWORD *)(contexthandle + 184) = object; // =======> [b]
a2[8] = object[22];
}
[...]
}
このサービスのインターフェースは、3つの主要な関数で構成されている:
- ClientAttach:コンテキスト・ハンドルを作成する。
- ClientRequest:コンテキスト・ハンドルでリクエストを処理する。
- ClientDetach:コンテキスト・ハンドルを解放する。
この脆弱性は、上記の ClientRequest メソッドに起因している。このメソッドでは、”gaFuncs”というグローバル変数が、特定のディスパッチ関数へとリクエストをルーティングする。これらの関数は、NewObject 関数により作成され、Global Handle Table に挿入される各種のオブジェクトを処理する。
ただし、マジック値 “GOLD” を持つオブジェクトを処理する場合において、重大な見落としが発生する。Telephony サービスは、コンテキスト・ハンドルを解放する前に、そのハンドルが “GOLD” を所有されているかどうかを確認できない。この欠陥が悪用されると、2つのコンテキスト・ハンドルが作成される可能性が生じる。
1つは “GOLD” オブジェクトを保持するためのものであり、もう1つは “GOLD” オブジェクトを解放するために、FreeDiagInstance ディスパッチ関数を呼び出すためのものである。その結果として、元のコンテキスト・ハンドルは解放されたオブジェクトへのダングリング・ポインターを保持するため、後にサービスにより、それが参照されると、use-after-free の脆弱性へとつながっていく。

この脆弱性のエクスプロイトは、Cyber Kunlun の k0shl により開発された。k0shl が採用したのは、このような攻撃を防ぐように設計されたセキュリティ機能である、Windows 11 の eXtended Flow Guard (XFG) 緩和策を回避するための新しい手法である。
k0shl の詳細な分析に続いて、別の研究者である Wa1nut4 が、脆弱性 CVE-2024-26230 の PoC エクスプロイト・コードを GitHub で公開した。それにより、この脆弱性は、攻撃者により広くアクセスできるようになっている。
このエクスプロイトは、攻撃者により完全に制御することが可能な、RPC クライアントの入力バッファー操作で機能するものだ。この制御により、最終的に、ダングリング・ポインターを介して仮想関数を参照するときに、Telephony はクラッシュする。
この脆弱性の悪用に成功した攻撃者は、侵害したシステムの完全な制御が可能になるため、深刻な結果が引き起こされる。SYSTEM 権限を手にした攻撃者は、任意のコード実行/マルウェアのインストール/機密データの窃取などに加えて、永続的なバックドアの確立も可能にする。
すでに Microsoft は、2024年4月のセキュリティ更新プログラムで、この脆弱性に対処している。システム管理者とユーザーに対して強く推奨されるのは、更新プログラムを直ちに適用して、システムを保護することである。
Windows Telephony API (TAPI) が、どのくらい利用されているのか、そのあたりが分かりませんが、文中の「標準ユーザー権限で StartServiceW API を呼び出せばアクティブ化できる」という指摘が気になります。PoC も提供されていますので、ご利用の Windows システムにおける、TAPI の ON/OFF を。ご確認ください。よろしければ、Windows で検索も、ご参照ください。
You must be logged in to post a comment.