专栏名称: 3072
威胁狩猎,漏洞挖掘
今天看啥  ›  专栏  ›  3072

CVE-2024-30051 dwmcore 堆溢出漏洞分析

3072  · 公众号  ·  · 2024-09-08 11:20

文章预览

测试环境: 10.0.19045 漏洞出现在 CCommandBuffer::Initialize 函数中。由于分配的内存大小计算错误,导致发生溢出。补丁引入了一个关于可整除的快速检查,如果除法操作有余数,函数将终止,然而内存仍然会被分配 :) 试图追踪漏洞函数的可达路径时,得到了如下结果。 图表 从调用树来看,我们有三个选择: CSurfaceBrush::GetBrushParameters 。 CPrimitiveGroup::GenerateDrawList 。 CPrimitiveGroup::GetTextureMemoryLayoutData 。 我选择了 CSurfaceBrush 来创建触发条件。 我创建了一个可执行 PoC 代码,它可以到达 CCommandBuffer::Initialize 代码。在创建过程中,我依赖于在 CSurfaceBrush::GetBrushParameters 函数上设置断点后获得的标准堆栈跟踪。为了创建这个 PoC,我使用了 HelloComposition 示例,从中可以看出如何构建资源树以到达漏洞代码。 这是 HelloComposition 用于在窗口中绘制随机大小且 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览