这里有一篇关于 CVE-2024-26160 的简短分析,该漏洞可在二月补丁(KB5034765,Windows 11 22H2、Windows 11 23H2)中找到。该漏洞已在三月补丁(KB5035853)中修复。
该漏洞位于 CldiPortProcessGetRangeInfo 函数中,它没有检查用户应用程序传入的缓冲区大小。由于该大小可由用户控制,memmove(用于复制返回的信息)在正确传入大小的情况下,可以获取包含内核地址的相邻内存池。


三月补丁(KB5035853)引入了对缓冲区大小的额外检查。

在正常情况下,当调用 CfGetPlaceholderRangeInfoForHydration 函数时会调用该易受攻击的函数,该函数对返回缓冲区使用固定大小,因此需要构造一个能够到达该易受攻击函数调用的数据包。所需函数的调用会经过 CldiPortNotifyMessage 函数,在该函数中,所有数据包(包括一些特定数据包)都必须通过验证。

为了触发泄露,正确传递消息类型非常重要。

如果数据包构造正确,我们将看到地址泄露。
