CVE:CVE-2006-1306
CNNVD:CNNVD-200607-209
Microsoft Excel是非常流行的电子表格办公软件。
Microsoft Excel在解析BIFF文件格式时存在内存破坏漏洞，远程攻击者可能利用此漏洞用户机器上执行任意指令。
由于没有正确的验证函数指针，因此可能导致执行任意指令。反汇编代码如下：
.text:300ABAFC sub_300ABAFC    proc near               ; CODE XREF:
sub_3008FEA4
+B5 p
.text:300ABAFC                                         ; sub_30096EC8-5F2 p ...
.text:300ABAFC
.text:300ABAFC arg_0           = dword ptr  4
.text:300ABAFC arg_4           = dword ptr  8
.text:300ABAFC arg_8           = dword ptr  0Ch
.text:300ABAFC
.text:300ABAFC                 mov     eax, [esp+arg_0]        
.text:300ABB00                 movsx   ecx, word ptr [eax]  --> [eax]
read from the XLS file
.text:300ABB03                 push    [esp+arg_8]
.text:300ABB07                 imul    ecx, 14h
.text:300ABB0A                 push    [esp+4+arg_4]
.text:300ABB0E                 push    eax
.text:300ABB0F                 mov     eax, dword_308792C4  -->
[eax]=00e17638,always, maybe different in the language SYSTEM
.text:300ABB14                 call    dword ptr [ecx+eax]  --> ****
Here! call your CODE.
.text:300ABB17                 retn    0Ch
.text:300ABB17 sub_300ABAFC    endp
eax是设置为00e17638h(?)的索引，且ecx的变化范围很大，因此攻击者可以创建特制的数据并调用。攻击者所提供的数据之后会被用于直接的内存访问，这样攻击者就可以选择包含有可控数据的特殊值，导致代码执行。
solution:Upgrade microsoft excel to a higher version than 2000,2000:sp2,2000:sp3,2000:sr1,2002,2002:sp1,2002:sp2,2002:sp3,2003,2003:sp1,2004,x,and avoid the version 2000,2000:sp2,2000:sp3,2000:sr1,2002,2002:sp1,2002:sp2,2002:sp3,2003,2003:sp1,2004,x; Upgrade microsoft excel_viewer to a higher version than 2003,and avoid the version 2003