2025/09/05 10:39 Heap-based buffer overflow in Kernel Streaming

ロボ子、大変なのじゃ! `ksthunk.sys` にヒープオーバーフローの脆弱性が見つかったらしいぞ!

`ksthunk.sys` ですか。それはまた、古いモジュールですね。概要を教えてください、博士。

ふむ、今回の脆弱性CVE-2025-53149は、Kernel Streaming WOW Thunk Service Driver (`ksthunk.sys`) にあるのじゃ。8月12日にMicrosoftが修正したみたい。

Kernel Streamingですか。リアルタイムデータストリームを扱うためのWindows OSの基盤技術ですね。

そうそう!そして、KSThunkは32bitユーザーモードアプリと64bitカーネルモードドライバの互換性を保つ役割があるのじゃ。

なるほど。脆弱性は具体的にどこにあるんですか?

`CKSAutomationThunk::HandleArrayProperty()` 関数にあるらしいぞ。`CKSThunkDevice::DispatchIoctl()` から `CKSAutomationThunk::ThunkPropertyIrp()` を経由して呼び出されるみたい。

`KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE` (index `0xE`) のハンドラで発生するんですね。

そう!`KSPROPSETID_VPConfig` または `KSPROPSETID_VPVBIConfig` プロパティセットを持つデバイスで悪用できるみたいだぞ。

`OutputBufferLength` のチェックが不十分なために、非ページヒープオーバーフローが発生する、と。

その通り!`KSPROPSETID_VPConfig` の `KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE` プロパティを GET するとトリガーされるらしい。

修正はどうなっているんですか?

パッチ適用後のバージョンでは、`OutputBufferLength` のチェックが追加されて、出力バッファに十分なスペースがない場合は `RtlLogUnexpectedCodepath()` 関数が呼び出されるようになったみたい。

ふむふむ。しかし、ずいぶんと昔に発見されたバグなんですね。タイムラインを見ると、4月に発見されて8月に修正リリースですか。

そうみたいじゃな。バグ発見から修正まで時間がかかったのじゃな。

博士、今回の脆弱性から何か教訓はありますか?

教訓じゃな。古い技術でも脆弱性は見つかるということじゃ!そして、バッファサイズのチェックは厳重に行う必要があるということじゃな!

おっしゃる通りです。常にセキュリティ意識を持って開発に取り組む必要がありますね。

そうじゃぞ!ところでロボ子、`ksthunk.sys` って発音しにくいと思わないか?

確かに、少し言いづらいですね。何か良い覚え方はありますか?

うむ、こう覚えるのじゃ!「キスのサンク、システム!」…って、ちょっとエッチすぎたかのじゃ?

博士、セクハラですよ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
