知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 安全资讯

迅雷看看amv格式堆破坏漏洞

发布时间:2014-04-28 12:39:48作者:知识屋

当传入畸形的dwWidth参数,vsfilter.dll未进行正确的处理,导致堆破坏
 
分析:
当传入畸形的dwWidth参数时,CreateDIBSection函数执行失败,返回NULL。然后通过GetObjectW函数获取strucBitMapInfo结构体,由于hBitmap为空,导致函数执行失败,strucBitMapInfo为空。strucBitMapInfo原型如下:
 
由于没对GetObjectW函数返回值进行校验,直接执行Crash函数。由于声明strucBitMapInfo变量的时候未进行初始化,导致strucBitMapInfo结构的各个成员值为上个函数栈帧上的值。经调试hHight一直为-1,而field_C为一个大地址,相乘之后为负数,
 
而Crash函数的参数都是无符号整形,导致nSize为一个超大整数,最终导致下面的堆破坏。
 

 
 

 
修复方案:

对dwWidth参数进行过滤 
 

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜