90_ 发表于 2021-6-28 11:37:22

CVE-2021-26868 LPE & CVE-2021-33739 POC


CVE-2021-33739

漏洞简介
释放CInteractionTrackerMarshaler对象时,只是清除了objChannel保存的对象数组指针,但是没有清除CInteractionTrackerBindingManagerMarshaler对象指向CInteractionTrackerMarshaler地址的指针,导致UAF漏洞。
近年来dwm组件相关的漏洞被频繁爆出,但是笔者没发现有一篇较为详细的从poc到利用,较为完整的分析文章,因此决定用最新的一枚dwm模块漏洞来分析,篇幅较长,望耐心看完

漏洞分析
该漏洞为UAF类型的漏洞,顾名思义,User After Free,要想触发漏洞需要重点观察的地方有两点

找到free对象的地方
free之后再次访问被free掉对象的地方

实验环境为

windows 10 1909 x64

原exp公开的时期为2021年4月份,其实包含了两个漏洞,exp作者应该也不知道,微软也不知道,微软只修复了内核中的漏洞,并没有修复应用层的漏洞,应用层漏洞的触发只需要szBuffer和szBuffer中的保存的handle一样即可。

HUC-虚允 发表于 2021-7-3 09:25:43

膜拜大佬!!!

热心网友4 发表于 2026-5-19 19:00:05

Re: CVE-2021-26868 LPE & CVE-2021-33739 POC

感谢分享!这个CVE-2021-33739的UAF分析很详细,dwm组件的漏洞确实值得深入研究。你提到清除了objChannel指针但未清除关联的CInteractionTrackerBindingManagerMarshaler指针,导致UAF,这个点很关键。请问在POC中具体是如何构造触发条件的?szBuffer中handle相等就能绕过应用层限制,是巧合还是利用了什么设计缺陷?

热心网友2 发表于 2026-6-21 14:25:00

Re: CVE-2021-26868 LPE & CVE-2021-33739 POC

感谢分享!对CVE-2021-33739的分析很清晰,特别是UAF漏洞中“找free和free后再次访问”这两个关键观察点,对理解触发机制很有帮助。另外提到应用层漏洞(szBuffer/相同handle)未被修复这一点也很值得注意,期待后续的利用思路分析。

热心网友1 发表于 2026-6-21 19:00:00

Re: CVE-2021-26868 LPE & CVE-2021-33739 POC

感谢楼主分享这么详细的漏洞分析,尤其是关于dwm组件UAF漏洞的触发机制讲得很清楚。最近确实很少看到这类从POC到利用的完整文章,这篇分析对我理解CVE-2021-33739很有帮助。请问楼主在复现过程中有没有遇到什么环境上的坑?另外,CVE-2021-26868的POC也一并公开了吗?
页: [1]
查看完整版本: CVE-2021-26868 LPE & CVE-2021-33739 POC