BUGTRAQ ID: 39836 CVE ID: CVE-2010-1681 Visio是微软Office套件中的图形编辑工具。 Visio中所使用的VISIODWG.DLL库中存在缓冲区溢出漏洞,起因是在该库的74ef偏移处执行了不安全的strcpy调用。在将DXF文件注入到Visio文档中时(通过拖放操作或从菜单栏中选择“注入 -> CAD绘图”)会加载有漏洞的函数库。成功利用这个漏洞的攻击者可以以运行Visio用户的权限执行任意代码。 微软在MS10-028公告所提供的补丁中通过使用81e7偏移处的strncpy调用替换有漏洞的调用来修复这个漏洞,但公告中并没有提及这个漏洞。 /----- 安装补丁前: .text:667D74E2 loc_667D74E2: .text:667D74E2 mov ecx, [edi+2428h] .text:667D74E8 mov edx, [esp+6Ch+Key] .text:667D74EC inc ecx .text:667D74ED push ecx ; Source .text:667D74EE push edx ; Dest .text:667D74EF call strcpy .text:667D74F4 mov esi, ds:bsearch .text:667D74FA push offset sub_667D7400 ; PtFuncCompare .text:667D74FF push 0Ch ; ElementSize .text:667D7501 push 0D5h ; NumOfElements .text:667D7506 lea eax, [esp+80h+Key] .text:667D750A push offset off_6685E730 ; Base .text:667D750F push eax ; Key .text:667D7510 call esi ; bsearch .text:667D7512 mov edi, eax .text:667D7514 add esp, 1Ch .text:667D7517 test edi, edi .text:667D7519 jz loc_667D770F 安装补丁后: .text:667D81D2...
BUGTRAQ ID: 39836 CVE ID: CVE-2010-1681 Visio是微软Office套件中的图形编辑工具。 Visio中所使用的VISIODWG.DLL库中存在缓冲区溢出漏洞,起因是在该库的74ef偏移处执行了不安全的strcpy调用。在将DXF文件注入到Visio文档中时(通过拖放操作或从菜单栏中选择“注入 -> CAD绘图”)会加载有漏洞的函数库。成功利用这个漏洞的攻击者可以以运行Visio用户的权限执行任意代码。 微软在MS10-028公告所提供的补丁中通过使用81e7偏移处的strncpy调用替换有漏洞的调用来修复这个漏洞,但公告中并没有提及这个漏洞。 /----- 安装补丁前: .text:667D74E2 loc_667D74E2: .text:667D74E2 mov ecx, [edi+2428h] .text:667D74E8 mov edx, [esp+6Ch+Key] .text:667D74EC inc ecx .text:667D74ED push ecx ; Source .text:667D74EE push edx ; Dest .text:667D74EF call strcpy .text:667D74F4 mov esi, ds:bsearch .text:667D74FA push offset sub_667D7400 ; PtFuncCompare .text:667D74FF push 0Ch ; ElementSize .text:667D7501 push 0D5h ; NumOfElements .text:667D7506 lea eax, [esp+80h+Key] .text:667D750A push offset off_6685E730 ; Base .text:667D750F push eax ; Key .text:667D7510 call esi ; bsearch .text:667D7512 mov edi, eax .text:667D7514 add esp, 1Ch .text:667D7517 test edi, edi .text:667D7519 jz loc_667D770F 安装补丁后: .text:667D81D2 loc_667D81D2: .text:667D81D2 mov ecx, [edi+2430h] .text:667D81D8 mov edx, [esp+6Ch+Key] .text:667D81DC mov ebx, ds:strncpy .text:667D81E2 inc ecx .text:667D81E3 push 50h ; Count <-- MAX LENGTH .text:667D81E5 push ecx ; Source .text:667D81E6 push edx ; Dest .text:667D81E7 call ebx ; strncpy .text:667D81E9 mov esi, ds:bsearch .text:667D81EF push offset sub_667D80F0 ; PtFuncCompare .text:667D81F4 push 0Ch ; ElementSize .text:667D81F6 push 0D5h ; NumOfElements .text:667D81FB lea eax, [esp+84h+Key] .text:667D81FF push offset off_6685F730 ; Base .text:667D8204 push eax ; Key .text:667D8205 mov [esp+8Ch+var_1], 0 .text:667D820D call esi ; bsearch .text:667D820F mov edi, eax .text:667D8211 add esp, 20h .text:667D8214 test edi, edi .text:667D8216 jz loc_667D840C - -----/ Microsoft Visio 2007 SP2 Microsoft Visio 2007 SP1 Microsoft Visio 2003 SP3 Microsoft Visio 2003 SP2 厂商补丁: Microsoft --------- Microsoft已经为此发布了一个安全公告(MS10-028)以及相应补丁: MS10-028:Vulnerabilities in Microsoft Visio Could Allow Remote Code Execution (980094) 链接:http://www.microsoft.com/technet/security/bulletin/MS10-028.mspx?pf=true