SILC 客户端以及服务器密钥协商远程整数溢出漏洞                
                
                    所属分类:
                        网络安全 / 漏洞分析                    
                    阅读数:
                        158
                    
                        收藏 0赞 0分享
                    
                 
                
                    受影响系统: 
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/ 
                                    
             
            
                
                2007年12月网络安全漏洞总结
 声明:本十大安全漏洞由NSFOCUS安全小组根据安全漏洞的严重程度、影响范围等因素综合评出,仅供参考
  1.2007-12-11 Microsoft消息队列服务栈溢出漏洞
  综述:
  Microsoft Windows是微软发布的非常流行的操
                    
                    收藏 0赞 0分享
OmniPCX Enterprise存在远程命令注入漏洞
受影响系统:  
Alcatel-Lucent OmniPCX Enterprise <= 7.1  
不受影响系统:  
Alcatel-Lucent OmniPCX Enterprise 7.1 patch F5.401.19  
Alcatel-Luc
                    
                    收藏 0赞 0分享
Sun Java jpiexp32.dll对象名称含空指针引用漏洞
受影响系统: 
Sun JRE < 5.0 Update 14 
不受影响系统: 
Sun JRE 5.0 Update 14 
描述: 
Solaris系统的Java运行时环境(JRE)为JAVA应用程序提供可靠的运行环境。  
JRE处理畸
                    
                    收藏 0赞 0分享
InterBase和Firebird远程栈缓冲区溢出漏洞
受影响系统: 
Borland InterBase WI-V8.1.0.257 
Borland InterBase WI-V8.0.0.123 
Borland InterBase WI-V7.5.1.80 
Borland InterB
                    
                    收藏 0赞 0分享
IE 存在document.open()方式地址欺骗漏洞
受影响系统: 
Microsoft Internet Explorer 7.0 
Microsoft Internet Explorer 6.0 SP1 
Microsoft Internet Explorer 6.0 
Microsoft
                    
                    收藏 0赞 0分享
Microsoft IE onunload事件地址栏欺骗漏洞
受影响系统: 
Microsoft Internet Explorer 7.0 
Microsoft Internet Explorer 6.0 SP1 
Microsoft Internet Explorer 6.0 
Microsoft Internet Ex
                    
                    收藏 0赞 0分享
F2blog XMLRPC 上传任意文件漏洞
刚从官方下载的最新版:F2blog-v1.2_build_03.01_full
存在漏洞文件:xmlrpc.php,
影响:可上传任意文件到服务器。
原理:get_http_raw_post_data()是获取最原始的传递过来的数据,也是说不会因为PHP环境的ma
                    
                    收藏 0赞 0分享
FTP客户端目录遍历漏洞可向任意位置写文件
FFFTP是一款小型的FTP客户端软件。FFFTP客户端没有正确地验证FTP服务器所返回的LIST命令响应中包含有目录遍历序列(斜线)的文件名,如果用户受骗从恶意的FTP服务器下载的目录包含有带有恶意文件名的文件的话,就可能导致向用户系统的任意位置写入文件。  
    受影
                    
                    收藏 0赞 0分享
                 查看更多