
MsIo64.sys のスタックベースのバッファオーバーフロー、nt authority/system へのローカル権限昇格の概念実証
CVE-2021-27965 を悪用して、システム cmd を起動することで LPE を行うシンプルな PoC。
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27965
署名された MICSYS Windows ドライバー (MsIo64.sys) に問題が発見され、ローカルシステム全体が侵害される可能性があります。このドライバーの ioctl ディスパッチルーチンは、すべての IOCTL コードにおいてスタックベースのバッファオーバーフローが発生し、さらにユーザー指定バッファの検証も欠如しています。
誰でもハンドルを作成し、Windows のセキュリティモデルを破壊するこれらの IOCTL コードに対して ioctl リクエストを発行できます。
各 IOCTL コードで、ドライバーは Irp->SystemBuffer に直接アクセスするのではなく、memcpy のような関数を使用して Irp->SystemBuffer を常に固定サイズの現在の関数のスタックフレームバッファにコピーします (その後このバッファを使用します)。呼び出しプロセスによって Irp->SystemBuffer と Irp->CurrentStackLocation->InputBufferLength の両方が制御されるため、悪意のある攻撃者は、関数スタックフレーム内のバッファをオーバーフローさせるのに十分な大きさのバッファを送信できます。注意すべき点: DriverEntry 内に __security_init_cookie() があるにもかかわらず、ioctl ディスパッチでは __security_check_cookie() が何らかの理由で欠落しています。
TODO
TODO