SILC 客户端以及服务器密钥协商远程整数溢出漏洞

所属分类: 网络安全 / 漏洞分析 阅读数: 113
收藏 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/

更多精彩内容其他人还在看

.Net开发人员常犯的6大安全错误

  微软已经为.Net环境添加了大量的功能,帮助开发人员创建安全的应用程序,例如,身份验证已经成为开发环境集成的一个功能,另外,默认情况下调试消息被禁用掉了。微软对安全的关注程度极大地影响了开发人员,促使他们在软件开发过程中重新评估纳入安全保障的重要性。
收藏 0 赞 0 分享

科汛 KesionCMS 文件名解析漏洞

科汛cms,eshop系统建站第一品牌.专业提供开源cms项目定制服务及名片系统,在线输出,在线印刷,广告制作,在线图文下单系统提供商。
收藏 0 赞 0 分享

科讯 kesioncms 5.5以下漏洞拿shell方法原理总结(图文)

科讯做为一个强大的cms程序大多被政府和教育机构网站所使用,关于科讯的漏洞利用教程网上不是很多。由于科讯的后台登陆需要输入认证码,而认证码没有保存在数据库而是保存在asp文件中,所以在某种程度上增大了拿shell 的难度。下面就个版本拿shell 的方法做一总结。
收藏 0 赞 0 分享

DISCUZ X1.5 本地文件包含漏洞说明

DISCUZX1.5 本地文件包含,当然是有条件的,就是使用文件作为缓存。
收藏 0 赞 0 分享

织梦网官方(dedecms)爆路径最新漏洞

  首发:红科网安   作者:Amxking   漏洞程序:dedecms5.5   测试对象:织梦网CMS官方网站   提交时间:2010-03-17   漏洞类型:信息泄露   危险等级:低   漏洞描述:   dedecms 5.5程序泄露网站路径信息。     测试地址:
收藏 0 赞 0 分享

ewebeditor通杀鸡肋0day漏洞

先访问这个地址 Editor/asp/upload.asp?action=save&type=image&style=popup&cusdir=a.asp 访问这个地址可以建立个A.ASP的文件夹…… 再用这个html代码
收藏 0 赞 0 分享

PHP漏洞全解

PHP网页的安全性问题,针对PHP的网站主要存在下面几种攻击方式
收藏 0 赞 0 分享

ecshop爆绝对路径的bug

  ecshop爆绝对路径的bug   网址如下"   http://www.zzfhw.com/ECShop/includes/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/s
收藏 0 赞 0 分享

dedecms织梦 v5.5 两处跨站漏洞

  影响版本:   dedecms织梦5.5   漏洞描述:   demo1:http://www.dedecms.com/plus/search.php?keyword=%22>&searchtype=titlekeyword&channeltype=0&
收藏 0 赞 0 分享

dedecms 5.6的最新注入漏洞

  最新dedecms 5.6的注入代码:   http://www.dedecms.com/plus/rss.php?tid=1&_Cs[][1]=1&_Cs[2%29%29%20AND%20%22%27%22%20AND%20updatexml%281,%28
收藏 0 赞 0 分享
查看更多