Microsoft Windows是美国微软(Microsoft)公司发布的一系列操作系统。 Microsoft Windows在渲染Windows图元文件(WMF)和增强型图元文件(EMF)图形格式时存在缓冲区溢出漏洞,成功利用这个漏洞的攻击者可以远程执行任意代码。 负责解析Windows图元文件的GDI32.DLL代码的PlayMetaFileRecord函数中存在缓冲区溢出漏洞。该函数的36h和37h处理\"SetPaletteEntries\"-类型记录。如果记录的报告长度是7FFFFFFFh或FFFFFFFFh的话,以下代码就会出现整数溢出: 77F5BC38 mov eax, [ebx] ; length field 77F5BC3A lea eax, [eax+eax+2] ; *** integer overflow *** 77F5BC3E push eax 77F5BC3F push edi 77F5BC40 call ds:LocalAlloc ... 77F5BC51 mov ecx, [ebx] ; length field 77F5BC53 add eax, 2 77F5BC56 shl ecx, 1 ; copy size != allocation size 77F5BC58 mov edx, ecx ; intrinsic memcpy() follows 77F5BC5A mov esi, ebx 77F5BC5C mov edi, eax 77F5BC5E shr ecx, 2 77F5BC61 rep movsd 77F5BC63 mov ecx, edx 77F5BC65 and ecx, 3 ... 77F5BC6D rep movsb
Microsoft Windows是美国微软(Microsoft)公司发布的一系列操作系统。 Microsoft Windows在渲染Windows图元文件(WMF)和增强型图元文件(EMF)图形格式时存在缓冲区溢出漏洞,成功利用这个漏洞的攻击者可以远程执行任意代码。 负责解析Windows图元文件的GDI32.DLL代码的PlayMetaFileRecord函数中存在缓冲区溢出漏洞。该函数的36h和37h处理\"SetPaletteEntries\"-类型记录。如果记录的报告长度是7FFFFFFFh或FFFFFFFFh的话,以下代码就会出现整数溢出: 77F5BC38 mov eax, [ebx] ; length field 77F5BC3A lea eax, [eax+eax+2] ; *** integer overflow *** 77F5BC3E push eax 77F5BC3F push edi 77F5BC40 call ds:LocalAlloc ... 77F5BC51 mov ecx, [ebx] ; length field 77F5BC53 add eax, 2 77F5BC56 shl ecx, 1 ; copy size != allocation size 77F5BC58 mov edx, ecx ; intrinsic memcpy() follows 77F5BC5A mov esi, ebx 77F5BC5C mov edi, eax 77F5BC5E shr ecx, 2 77F5BC61 rep movsd 77F5BC63 mov ecx, edx 77F5BC65 and ecx, 3 ... 77F5BC6D rep movsb