Microsoft Excel PivotTable缓存数据记录解析栈溢出漏洞

受影响系统:

Microsoft Excel 2003 SP3
Microsoft Excel 2002 SP3
Microsoft Office 2008 for Mac
Microsoft Office 2004 for Mac

描述:


BUGTRAQ  ID: 42199
CVE ID: CVE-2010-2562

Excel是微软Office套件中的电子表格工具。

Excel解析设置有特制PivotTable缓存数据记录(偏移C6h)的.XLS文件时存在栈溢出漏洞。如果cfdbTot成员的值等于0就可以触发这个漏洞。以下是有漏洞代码的反汇编:

/—–
30013CD4   . 0FB707         MOVZX EAX,WORD PTR DS:[EDI]     ;invalid pointer **
30013CD7   . 56             PUSH ESI
30013CD8   . 8D3400         LEA ESI,DWORD PTR DS:[EAX+EAX]     ;size =
content*2
30013CDB   . F7C6 00000080  TEST ESI,80000000
30013CE1   . 0F85 2D642300  JNZ EXCEL.3024A114
30013CE7   > 83C7 02        ADD EDI,2
30013CEA   . 56             PUSH ESI                 ;size
30013CEB   . 57             PUSH EDI                 ;src
30013CEC   . 8B7C24 14      MOV EDI,DWORD PTR SS:[ESP+14]    ;stack buffer
30013CF0   . 57             PUSH EDI                 ;dst
30013CF1   . E8 8228FFFF    CALL EXCEL.30006578                 ;copy to
stack

EAX 0013F288
ECX 00000000
EDX 00012BB8
EBX 0000110A
ESP 0013F06C
EBP 0013F590
ESI 00003000
EDI 08E06938 **

– —–/

通过在30013CD4分配无效指针所引用的地址,就可以控制在30013CEB所PUSH的src指针的内容及在30013CEA所PUSH的拷贝字节数,当30013CF1的拷贝操作溢出栈上目标缓冲区后就可以执行任意代码。

<*来源:Damian Frizza
  
  链接:http://secunia.com/advisories/40750/
        http://marc.info/?l=bugtraq&m=128152424023120&w=2
        http://www.microsoft.com/technet/security/bulletin/MS10-057.mspx?pf=true
        http://www.us-cert.gov/cas/techalerts/TA10-222A.html
*>

建议:


临时解决方法:

* 使用Microsoft Office文件阻断策略以防止打开未知或不可信任来源的Office 2003及更早版本的文档。

* 当打开来自未知来源或不可信来源的文件时使用Microsoft Office隔离转换环境(MOICE)。

* 不要打开从不可信任来源接收到或从可信任来源意外接收到的Microsoft Office文件。

厂商补丁:

Microsoft
———
Microsoft已经为此发布了一个安全公告(MS10-057)以及相应补丁:
MS10-057:Vulnerability in Microsoft Office Excel Could Allow Remote Code Execution (2269707)
链接:http://www.microsoft.com/technet/security/bulletin/MS10-057.mspx?pf=true

 

发表评论?

0 条评论。

发表评论