CVE:CVE-2006-3623
CNNVD:CNNVD-200607-246
Intel McAfee ePolicy Orchestrator（ePO）是美国英特尔（Intel）公司（原McAfee公司）的一套可扩展的安全管理软件。该软件可对终端、网络、内容安全和合规解决方案实现集中的简化管理。
ePO的框架服务对用户POST请求参数的检查过滤的实现上存在漏洞，远程攻击者可以利用此漏洞对服务器执行目录遍历攻击。
ePO的框架服务通过/spipe/pkg接口接受POST请求。POST请求的头部可以指示软件包请求的类型、UUID和计算机主机名。根据请求的不同，之后的数据块可能包含有该请求所特定的数据。在本漏洞所述的情况中，请求类型(PackageType)是PropsResponse，紧随其后数据指定了目录和xml文件名，然后是xml文件的内容。由于没有正确的过滤目录和文件名，攻击者可以使用目录遍历攻击以自定义的内容在系统中的任意位置写入文件名。
每个软件包请求都会使用静态的字节0xAA与软件包数据进行异或运算，然后使用SHA-1哈希和DSA签名。
有漏洞的软件包格式如下：
+00h WORD magic = "PO" (0x4F50)
+02h DWORD = 20000001h, 20001001h, or 30000001
+06h DWORD file offset of XML
+0Ah [E0h] fixed-length data
+0Ah DWORD
+0Eh DWORD
+12h DWORD length of XML
+16h [40h] ASCII ??? GUID
+56h [40h] ASCII ??? GUID
+96h DWORD
+9Ah [???] ASCII host name
...
+EAh [...] name-value pairs
X+00h DWORD length of following name string
+04h [...] ASCII name string (no null terminator)
X+00h DWORD length of following value data
+04h [...] value data (null terminated if ASCII string)
X+00h [...] XML
+00h WORD
+02h WORD length of following file name string
+04h [...] ASCII .xml file name string * traversal attack, may be any directory and file extension
X+00h DWORD length of following XML * increase length to prevent deletion
+04h [...] ASCII XML * filename data
X+00h DWORD length of signature data = 2Ch
+04h WORD (big-endian) number of bits in DSA signature 'r' component
+06h [14h] DSA signature 'r' component (technically it's variable-length)
+1Ah WORD (big-endian) number of bits in DSA signature 's' component
+1Ch [14h] DSA signature 's' component (also variable-length)
由于利用的是框架服务中已实现的函数，因此攻击是100%可用的。
solution:Upgrade mcafee epolicy_orchestrator_agent to a higher version than 3.5.0,and avoid the version (,3.5.0]