xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
Xcon English Version

[xfocus-SD-060314]Microsoft Office Excel 缓冲区溢出漏洞


创建时间:2006-03-15
文章属性:原创
文章提交:root (webmaster_at_xfocus.org)

[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