安全研究

安全漏洞
PGP Desktop Windows服务远程代码执行漏洞

发布日期:2007-01-25
更新日期:2007-01-29

受影响系统:
PGP Corporation PGP Desktop < 9.5.1
不受影响系统:
PGP Corporation PGP Desktop 9.5.1
描述:
BUGTRAQ  ID: 22247

PGP Desktop是一款强大的加密软件,具备文件、文件夹、邮件、即时通讯等加密功能。

PGP Desktop的命名管道在处理畸形对象时存在漏洞,远程攻击者可能利用此漏洞在机器上执行任意指令。

PGP Desktop所安装的PGPServ.exe/PGPsdkServ.exe服务暴露\pipe\pgpserv或pipe\pgpsdkserv命名管道。这个管道是RPC接口uuid:15cd3850-28ca-11ce-a4e8-00aa006116cb的端点,格式如下:

[ uuid(15cd3850-28ca-11ce-a4e8-00aa006116cb),
  version(1.0),
  implicit_handle(handle_t rpc_binding)
] interface pgpsdkserv
{
  error_status_t Function_00(
        [in] /* [ignore] void * */ long element_1
  );

  typedef struct {
    long element_2;
    [size_is(element_2)] [unique] byte *element_3;
  } TYPE_1;

  error_status_t Function_01(
        [in] /* [ignore] void * */ long element_4,
        [in] [size_is(element_6)] byte element_5[*],
        [in] long element_6,
        [in] long element_7,
       [out] [ref] TYPE_1 *element_8
  );
}

这个接口用于在PGP客户端(PGP.dll/PGPsdk.dll)和PGP服务之间传输各种对象和信息。由于负责处理传送给接口的对象的代码没有对这些对象执行任何验证,而是相信对象数据绝对安全,因此远程攻击者可以通过发送特制请求导致在PGP服务进程中执行任意代码。

<*来源:Peter Winter-Smith (peter4020@hotmail.com
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=116976966027243&w=2
        http://secunia.com/advisories/23938/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

/*

structure passed over rpc:
    struct {
        DWORD **pprgMM; // set as absolute pointer to dwUnknown_1
        DWORD dwUnknown_1; // set as absolute pointer to 'rgMM'
        DWORD dwCount; // set to value 0
        DWORD dwFGUB_signature; // set to value 'FGUB'
        DWORD dwUnknown_2; // set to value 'rgMM'
        DWORD dwUnknown_3;
        DWORD dwUnknown_4;
        DWORD dwUnknown_5;
        DWORD dwUnknown_6;
        PBYTE pbFunction; // set to absolute address of shellcode
        // etc...
    };

*/

建议:
厂商补丁:

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

http://www.pgp.com/

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