CVE:CVE-2005-2123
CNNVD:CNNVD-200511-472
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
solution:Upgrade microsoft windows_2000 to a higher version than *:sp4,and avoid the version *:sp4; Upgrade microsoft windows_2003_server to a higher version than 64-bit,itanium,r2,sp1,and avoid the version 64-bit,itanium,r2,sp1; Upgrade microsoft windows_xp to a higher version than *,*:sp1,*:sp2,and avoid the version *:sp1,*:sp2