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

受影响系统:

Microsoft Visio 2007 SP2
Microsoft Visio 2007 SP1
Microsoft Visio 2003 SP3
Microsoft Visio 2003 SP2

描述:
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

– —–/

<*来源:Daniel Kazimirow
  
  链接:
http://marc.info/?l=full-disclosure&m=127299981022788&w=2
        http://www.microsoft.com/technet/security/bulletin/MS10-028.mspx?pf=true
*>

建议:

厂商补丁:

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

发表评论?

0 条评论。

发表评论