[xfocus-SD-060314]Microsoft Office Excel 缓冲区溢出漏洞发布日期:2006-03-15
受影响的软件及系统:
====================
Microsoft Office Excel 2000
Microsoft Office Excel XP
Microsoft Office Excel 2003
CVE: CVE-2006-0031
综述:
======
Microsoft Excel是Office产品套件中的电子表格和分析程序。
XFOCUS安全小组发现Excel在处理特定".xls"文件时存在一个缓冲区溢出漏洞,这将导致Excel进程崩溃甚至执行任意代码。
分析:
======
Excel在打开".xls"文件时会将一个缓冲区初始化为0x0e0e0e0e,这时Excel错误的使用了初始化的长度,导致一个基于栈的缓冲区溢出。
以下代码来自excel v9.0.0.8924
>
> .text:3003FE0C movzx eax, word ptr [ebx]
> .text:3003FE0F xor ecx, ecx
> .text:3003FE11 cmp eax, 0Eh
> .text:3003FE14 mov [ebp+var_8], ecx
> .text:3003FE17 jg loc_301C01B5
>
> .text:301C01B5 mov byte ptr [ebp+ecx+var_138], cl
> .text:301C01BC inc ecx
> .text:301C01BD cmp ecx, 0Eh
> .text:301C01C0 jle short loc_301C01B5
> .text:301C01C2 cmp ecx, eax
> .text:301C01C4 mov [ebp-8], ecx
> .text:301C01C7 jg loc_3003FFC9
> .text:301C01CD sub eax, ecx
> .text:301C01CF lea edi, [ebp+ecx+var_138]
> .text:301C01D6 inc eax
> .text:301C01D7 mov edx, eax
> .text:301C01D9 mov eax, 0E0E0E0Eh
> .text:301C01DE mov ecx, edx
> .text:301C01E0 mov esi, ecx
> .text:301C01E2 shr ecx, 2
> .text:301C01E5 rep stosd <== buffer overflow
厂商状态:
==========
2005.12.27 通知厂商
2006.01.03 厂商证实漏洞存在
2006.03.14 厂商发布新版本修复漏洞
厂商已经发布了补丁来修复这个漏洞,请在下列地址下载最新版本:
http://www.microsoft.com/technet/security/Bulletin/MS06-012.mspx