Windows MIDI解析器quartz.dll远程堆破坏漏洞(MS03-030) CVE-2003-0346 CNNVD-200308-167

7.5 AV AC AU C I A
发布: 2003-08-27
修订: 2018-10-12

DirectX包含一套低级别API可由Windows程序调用来支持多媒体,其中quartz.dll允许Windows应用程序通过普通接口播放MIDI音乐。Windows Media Player和IE使用此dll来播放MIDI文件。 quartz.dll在处理畸形MIDI文件时存在问题,远程攻击者可以利用这个漏洞构建恶意WEB页面,诱使用户访问,以用户进程权限在系统上执行任意指令。 quartz.dll存在整数溢出而导致的堆破坏漏洞,如果MIDI文件中的Text或Copyright字符串的长度为FFFFFFFFh,quartz尝试分配0字节大小的堆快,然后拷贝text字符串或任何下面的数据到新分配的堆中,结果导致0字节块相邻的对内存结构被破坏。 主要问题是quartz增加指定字符串的长度没有进行任何缓冲区边界检查,增加的值(now 0)传递给LocalAlloc(),然后memcpy()函数将会使用原始值(FFFFFFFFh)从文件映象中拷贝字符串到堆缓冲区中。 还有一个堆破坏发生在16位整数溢出中,问题存在于MThd chunk的轨道数中,这个数值是一个16位整数,用于部分算法中可以判断轨道数据结构数组所需的大小,如块的大小按照如下方法计算: (number_of_tracks * 24h) + 9E0h 如果设置轨道数为1751(6D7h)或更大会导致分配一个不充分的较小的堆块,导致在拷贝数据的时候发生溢出。Windows 2003不受此漏洞影响。 攻击者可以利用构建恶意WEB页面,或发送使用HTML形式的EMAIL给有此漏洞的用户。

0%
暂无可用Exp或PoC
当前有6条受影响产品信息