Windows Hyper-V のゼロデイ脆弱性 CVE-2024-38080:PoC エクスプロイトが提供

PoC Exploit Released for Windows Hyper-V Zero-Day Vulnerability CVE-2024-38080

2024/09/16 SecurityOnline — Windows Hyper-V の修正済みゼロデイ脆弱性 CVE-2024-38080 (CVSS 7.8) に関する、詳細な分析と PoC エクスプロイト・コードが、セキュリティ研究者の Pwndorei により公開された。すでに実環境での積極的な悪用が観測されている、この脆弱性は、攻撃者に SYSTEM への権限昇格を許すものであるため、Windows Hyper-V のユーザー組織にとって深刻なリスクとなる。

脆弱性 CVE-2024-38080 は、権限昇格 (EoP:Elevation of Privilege) 脆弱性であり、仮想化コンピューティング環境を実現するための Microsoft  Windows Hyper-V に影響を与える。この脆弱性は、Hyper-V の VidExoBrokerIoctlReceive 機能で発見されたものであり、攻撃者により引き起こされる可能性がある、整数オーバーフローに起因する。この脆弱性の悪用に成功した攻撃者は、システムのメモリを操作して SYSTEM レベルの特権でコードを実行し、侵害したシステムの完全な制御を可能にする。

すでに Microsoft は、脆弱性 CVE-2024-38080 の存在を確認し、その積極的な悪用を認めている。しかし、この脆弱性の発見者や、この欠陥が引き起こす被害の範囲などの、具体的な詳細については明かしていない。しかし、この脆弱性の重要性と緊急性により、CISA は Known Exploited Vulnerability (KEV) カタログの追加を公表している。

Pwndorei の分析により、 この脆弱性は、Hyper-V 内 のIoctl リクエストを処理する VidExoBrokerIoctlReceive 関数に存在することが明らかになった。この脆弱性は、IRP (I/Oリクエストパケット) 構造内のデータの検証が、不十分であることに起因する。具体的に言うと、攻撃者は VidExoBrokerIoctlSend 関数を経由して、悪意の IRP リクエストを送信することで、この脆弱性を悪用できる。それにより、カーネルの非ページ・プールで整数オーバーフローが発生し、その後にバッファ・オーバーフローが発生してBSOD (Blue Screen of Death) へといたる。

__int64 __fastcall VidExoBrokerIoctlReceive(
        __int64 VidExoObj,
        struct _LIST_ENTRY *a2,
        BrokerIrpDataHeader *Dest,
        unsigned int OutputLen,
        unsigned int *a5)
{
  ...

  ReceivedIRP = (_IRP *)VidExoBrokerpFindAndDequeueSendIrpForFileObject(VidExoObj, a2);//[1] Sent by VidExoBrokerIoctlSend
  v9 = ReceivedIRP;
  if ( !ReceivedIRP )
  {
    ...
  }

公開された PoC では、問題の関数の呼び出しにより脆弱性が引き起こされ、クラッシュが発生する。しかし、より懸念されるのは、この脆弱性が SYSTEM への権限昇格に悪用され、システム全体が制御されることである。


CVE-2024-38080 の PoC エクスプロイトは、GitHub で一般公開されている。したがって、これらの関数を呼び出してオーバーフローを悪用し、システムをクラッシュさせる方法が、攻撃者に対して示されていることになる。このエクスプロイトが利用可能になったことで、Hyper-V を重要なワークロードに利用している組織のリスクが高まっている。なぜなら、この PoC は、攻撃者がエクスプロイトを複製するためのロードマップを提供しているからだ。

Microsoft は、この脆弱性を確認し、2024年7月の Patch Tuesday の一環でパッチをリリースしている。