|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您现在的位置: ChinaBeta.cn 中文IT资讯 >> 网络安全 >> 警戒公告 >> HACK技术正文
SILC 客户端以及服务器密钥协商远程整数溢出漏洞
Www.ChinaBeta.Cn 更新时间:2008-3-31

【ChinaBeta.Cn 网络安全】

受影响系统
SILC server <= 1.1.1
SILC client <= 1.1.3

不受影响系统
SILC server 1.1.2
SILC client 1.1.4

描述:
SILC(Secure Internet Live Conferencing)是安全的互联网会议讨论系统,可以发送任何类型的信息,包括多媒体信息,如视频、音频、图像等。

SILC处理畸形的数据交换时存在漏洞,远程攻击者可能利用此漏洞控制服务器

如果要初始连接到SILC服务器,对等端(客户端、路由器和服务器)之间要执行相互认证并执行密钥协商协议以获得之后用于加密通讯的共享密钥。对等端之间的加密数据是通过以PKCS#1 1.5标准编码的报文交换的。

SILC的PKCS1编码功能是在silcpkcs1.c文件的silccrypt库中实现的,用于解码PKCS#1报文的代码在silc_pkcs1_decode函数中实现,如下所示:

/-----------

   SilcBool silc_pkcs1_decode(SilcPkcs1BlockType bt,
   const unsigned char *data,
   SilcUInt32 data_len,
   unsigned char *dest_data,
   SilcUInt32 dest_data_size,
   SilcUInt32 *dest_len)
   {
   int i = 0;

   SILC_LOG_DEBUG(("PKCS#1 decoding, bt %d", bt));

   /* Sanity checks */
   if (!data || !dest_data || dest_data_size < 3 ||
      data[0] != 0x00 || data[1] != (unsigned char)bt) {
    SILC_LOG_DEBUG(("Malformed block"));
    return FALSE;
  }

  /* Decode according to block type */
  switch (bt) {
  case SILC_PKCS1_BT_PRV0:
    /* Do nothing */
    break;

  case SILC_PKCS1_BT_PRV1:
    /* Verification */
(1) for (i = 2; i < data_len; i++)
      if (data[i] != 0xff)
    break;
    break;

  case SILC_PKCS1_BT_PUB:
    /* Decryption */
(2) for (i = 2; i < data_len; i++)
      if (data[i] == 0x00)
    break;
    break;
  }

  /* Sanity checks */
(3) if (data[i++] != 0x00) {
    SILC_LOG_DEBUG(("Malformed block"));
    return FALSE;
  }
  if (i - 1 < SILC_PKCS1_MIN_PADDING) {
    SILC_LOG_DEBUG(("Malformed block"));
    return FALSE;
  }
  if (dest_data_size < data_len - i) {
    SILC_LOG_DEBUG(("Destination buffer too small"));
    return FALSE;
  }

  /* Copy the data */
(4) memcpy(dest_data, data + i, data_len - i);

  /* Return data length */
  if (dest_len)
    *dest_len = data_len - i;

  return TRUE;
}


- -----------/

在上面的代码中,如果在传输私有(BT_PRIV1)或公开(BT_PUB)密钥材料时有效PKCS#1编码的恶意伪造报文所有位分别设置为0xff或非0x00的话,就会导致执行流在(1)和(2)退出循环,无符整数变量i设置为data_len,然后在(3)同一变量i以1递增,因此设置为data_len+1。在(3)传送过滤检查的特制报文最终会由于在(4)处memcpy()函数中传送的第三个参数中的整数溢出而导致内存破坏。由于i设置为了datalen+1,用于计算第三个参数值的data_len - i表达式会为-1,导致由于符号转换错误而覆盖进程内存。成功利用这个漏洞会导致程序拒绝服务,或以SILC程序的权限执行任意指令。

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

http://silcnet.org/software/download/

Google

(责任编辑:hahack)

注:本站所有资料均为个人爱好与广大网友分享!如用于非法!造成一切后果自负·与本站无关!
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门文章 相关报道
普通HACK技术 [警戒公告]php My Admin工具中sort_by参数远… (09-22)最新HACK技术
普通HACK技术 [警戒公告]Landesk QIP Server服务 Heal报文… (09-22)最新HACK技术
普通HACK技术 [警戒公告]Windows操作系统SMB WRITE_ANDX处… (09-22)最新HACK技术
普通HACK技术 [菜鸟入门]三方法 杜绝企业网络安全管理系统… (09-03)
普通HACK技术 [菜鸟入门]掌握术语 分清电脑安全漏洞的危险… (09-03)
普通HACK技术 [编译|破解]Friendly Technologies fwRemote… (09-03)
普通HACK技术 [编译|破解]虚拟PC软件VMware2008-0014更新修… (09-03)
普通HACK技术 [菜鸟入门]三种方法 让你的交换机和路由器更… (09-02)
普通HACK技术 [编译|破解]Red Hat目录服务器LDAP请求内存泄… (09-02)
普通HACK技术 [菜鸟入门]消除隐患 创建计算机安全密码三大… (08-29)
  • php My Admin工具中sort_by…

  • Landesk QIP Server服务 He…

  • Windows操作系统SMB WRITE_…

  • 三方法 杜绝企业网络安全管…

  • 掌握术语 分清电脑安全漏洞…

  • Friendly Technologies fwR…

  • 虚拟PC软件VMware2008-0014…

  • 三种方法 让你的交换机和路…

  • Red Hat目录服务器LDAP请求…

  • 消除隐患 创建计算机安全密…

  •   网友评论内容:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    I D *
    邮 箱
    主 页
    评 分 1分 2分 3分 4分 5分
    评 论

    关于我们  中国·国家信息产业部{粤ICP备06006652号}{陇ICP备06002562号}
    版权所有:『AK网盟基地』站长:Hahack | QQ:80505955 | E-mail:Hahack@Gmail.com
    Copyright (C) 2005-2007  akhack.org|chinabeta.cn All Rights Reserved