Lucene search

K
seebugRootSSV:19558
HistoryMay 06, 2010 - 12:00 a.m.

Microsoft Visio VISIODWG.DLL库缓冲区溢出漏洞(MS10-028)

2010-05-0600:00:00
Root
www.seebug.org
11

0.732 High

EPSS

Percentile

97.8%

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