安全研究

安全漏洞
McAfee ePO SiteManager.dll ActiveX控件多个远程栈溢出漏洞

发布日期:2007-03-13
更新日期:2007-03-15

受影响系统:
McAfee ePolicy Orchestrator 3.6.1
McAfee ePolicy Orchestrator 3.5 patch 6
McAfee ProtectionPilot <= 1.1.1 patch 3
McAfee ProtectionPilot 1.5.0
描述:
BUGTRAQ  ID: 22952

McAfee ePolicy Orchestrator(ePO)是一种业界领先的系统安全管理解决方案,能够帮助企业有效抵御各种恶意威胁和攻击。

ePO的SiteManager.Dll ActiveX控件中存在多个缓冲区溢出漏洞,允许远程攻击者完全控制受影响的系统。
    
1. ExportSiteList()函数栈溢出

    InprocServer32:    SiteManager.dll
    ClassID:     4124FDF6-B540-44C5-96B4-A380CEE9826A
    ProgID:     SiteManager.SiteMgr.1
    函数名:     ExportSiteList

    如果将ExportSiteList参数设置为超长字符串,就会触发栈溢出,相关代码如下:

    (SiteManager.dll,version=3.6.1.166)

    .text:5262B1DE ; func_ExportSiteList
    .text:5262B1DE ; Attributes: bp-based frame
    .text:5262B1DE
    .text:5262B1DE ; int __stdcall sub_5262B1DE(int,wchar_t *,int)
    .text:5262B1DE sub_5262B1DE    proc near            ; DATA XREF: .rdata:5265B504o
    .text:5262B1DE                            ; .rdata:5265B614o
    .text:5262B1DE
    .text:5262B1DE var_414         = word ptr -414h
    .text:5262B1DE var_20E         = word ptr -20Eh
    .text:5262B1DE var_20C         = word ptr -20Ch
    .text:5262B1DE var_4           = dword ptr -4
    .text:5262B1DE arg_0           = dword ptr  8
    .text:5262B1DE arg_4           = dword ptr  0Ch
    .text:5262B1DE arg_8           = dword ptr  10h
    .text:5262B1DE
    .text:5262B1DE                 push    ebp
    .text:5262B1DF                 mov     ebp, esp
    .text:5262B1E1                 sub     esp, 414h
    .text:5262B1E7                 mov     eax, dword_52670218    ; set stack cookie
    .text:5262B1EC                 push    esi
    .text:5262B1ED                 push    [ebp+arg_4]        ; lpSrcBuff
    .text:5262B1F0                 mov     [ebp+var_4], eax
    .text:5262B1F3                 lea     eax, [ebp+var_20C]
    .text:5262B1F9                 push    eax            ; lpDestBuff
    .text:5262B1FA                 call    ds:wcscpy        ; stack overflow

2. 以下swprintf函数未经验证便执行了拷贝操作:

    .text:5262B257                 push    ebx
    .text:5262B258                 push    edi
    .text:5262B259                 mov     edi, offset aSitelist_xml ; "SiteList.xml"
    .text:5262B25E                 push    edi
    .text:5262B25F                 lea     eax, [ebp+var_20C]
    .text:5262B265                 push    eax
    .text:5262B266                 lea     eax, [ebp+var_414]
    .text:5262B26C                 push    offset aSS_0        ; "%s\\%s"
    .text:5262B271                 push    eax            ; lpSrcBuff
    .text:5262B272                 call    ds:swprintf        ; stack overflow

3. VerifyPackageCatalog()函数栈溢出

    InprocServer32:    SiteManager.dll
    ClassID:     4124FDF6-B540-44C5-96B4-A380CEE9826A
    ProgID:     SiteManager.SiteMgr.1
    函数名:     VerifyPackageCatalog

    如果将VerifyPackageCatalog参数设置为超长字符串,就会触发栈溢出,相关代码如下:

    (SiteManager.dll,version=3.6.1.166)

    part1:

    .text:5262CFAC func_VerifyPackageCatalog proc near    
    .text:5262CFAC                        
    .text:5262CFAC           mov     eax, offset loc_52649F86
    .text:5262CFB1           call    __EH_prolog
    ...
    .text:5262D00C           lea     eax, [ebp-28h]
    .text:5262D00F           push    eax
    .text:5262D010           push    ebx
    .text:5262D011           push    esi
    .text:5262D012           push    offset loc_5263AD1A
    .text:5262D017           push    ebx
    .text:5262D018           push    ebx
    .text:5262D019           call    ds:_beginthreadex

    part2:

    .text:5263AD1A           mov     eax, offset loc_5264B221
    .text:5263AD1F           call    __EH_prolog
    .text:52637229           push    ecx
    .text:5263722A           mov     eax, 1774h
    .text:5263722F           call    __alloca_probe                ; int
    .text:52637234           mov     eax, dword_52670218
    .text:52637239           mov     [ebp-14h], eax                ; set stack-cookie
    ...
    .text:5263AD9A           lea     ecx, [ebp-23Ch]
    .text:5263ADA0           push    ecx
    .text:5263ADA1           push    eax
    .text:5263ADA2           mov     ecx, edi
    .text:5263ADA4           call    sub_5263721F
        |
        |_____    .text:5263721F           mov     eax, offset loc_5264AD1C
            .text:52637224           call    __EH_prolog
            ...
            .text:5263731A           push    dword ptr [ebp+8]    ; lpSrcBuff,"AAA..."
            .text:5263731D           lea     eax, [ebp-62Ch]
            .text:52637323           push    eax            ; lpDestBuff
            .text:52637324           call    ds:wcscpy        ; stack overflow

<*来源:cocoruder (frankruder@hotmail.com
  
  链接:http://secunia.com/advisories/24466/
        http://lists.grok.org.uk/pipermail/full-disclosure/2007-March/052960.html
        https://knowledge.mcafee.com/article/25/612495_f.SAL_Public.html
        https://knowledge.mcafee.com/article/26/612496_f.SAL_Public.html
*>

建议:
厂商补丁:

McAfee
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

https://mysupport.mcafee.com/eservice_enu/start.swe

浏览次数:4136
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障