安全在线 |访问主站|网通镜像|电信镜像|娱乐|代理|BT|音乐|影视|军事|免费资源|远程教育
当前位置:安全在线 >> 文章频道 >> 最新漏洞 >> 浏览文章
SILC客户端及服务器密钥协商远程整数溢出漏洞
作者:佚名    来源:不详    点击数:   更新时间:2008年03月31日
 

 

发布日期:2008-03-25
更新日期:2008-03-26

受影响系统:

SILC server <= 1.1.1
SILC client <= 1.1.3
不受影响系统:
SILC server 1.1.2
SILC client 1.1.4
描述:
BUGTRAQ  ID: 28373

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程序的权限执行任意指令。

<*来源:Core Security Technologies
  
  链接:http://marc.info/?l=bugtraq&m=120647980023890&w=2
        http://silcnet.org/docs/release/SILC%20Client%201.1.4
        http://silcnet.org/docs/release/SILC%20Server%201.1.2
*>

建议:
厂商补丁:

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

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

更多技术文章和教程,请您进入安全在线论坛查看.BBS.AQZX.ORG


上一篇:phpBB eXtreme Styles模块admin_xs.php本地文件包含漏洞 下一篇:VLC媒体播放器MP4_ReadBox_rdrf函数堆溢出漏洞
日历搜索
推荐栏目
Google Toolbar对话栏欺骗漏洞
微软发布12月份安全公告 修复多个
MySQL服务器RENAME TABLE系统表格
5.17诺顿(Backdoor.Haxdoor)的误
Windows 2003 IIS6 .ASP目录执行
动易2006最新漏洞公告
PDF文件格式现漏洞 用户电脑可被
WordPress wp-trackback.php漏洞
phpArticle2.06两个本地包含文件
phpcms 3.0.0文件上传漏洞
FreeBSD UFS文件系统本地整数溢出
热门栏目
动易2006最新漏洞公告
phpcms 3.0.0文件上传漏洞
Windows 2003 IIS6 .ASP目录执行
重庆电信开展IP地址反向解析阻止
PHP Easy Download file_infoadm
企业网络规划    安全问题不可忽
首例网银被盗储户获全额赔付 用户
重庆门户网站频频被黑 被攻击请2
微软承认OEM版Vista被破解 暂不打
黑客侵入电脑盗信用卡现金盗走16
Windows Media Player ASX播放列
视频黑客盗取女子裸照敲诈勒索获
黑客远程登录盗取女子裸照进行敲
东昌中学一高考生遭遇电话黑客恶
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
 
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
 
添添的断弦忧若阁莱芜信息港租售信息网猎城信息网企业信息网前端技术论坛学生黑客联盟
安全在线论坛网站建设新虎网络竹馥堂主WEB前端开发您的位置您的位置
 

安全在线学生黑盟技术讨论组添添 断弦忧若阁点击申请点击申请点击申请

 
 
Copyright @ 2006--2008  安全在线  Www.Aqzx.org
  国内网络技术第一站,您的满意,您的收获是我们最大的满足.
      山东赛酷尔网络科技有限公司版权所有 鲁ICP备07000633号网站备案