瑞星OpenSSL(CVE-2014-0160)漏洞分析报告

2014-04-11 09:19:31
摘要:2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。

1. CVE-2014-0160漏洞背景

2014年4月7日OpenSSL发布了安全公告,在OpenSSL1.0.1版本中存在严重漏洞(CVE-2014-0160)。OpenSSL Heartbleed模块存在一个BUG,问题存在于ssl/dl_both.c文件中的心跳部分,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy函数把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的OpenSSL服务器内存中多达64K的数据。

2. OpenSSL受影响版本的分布

根据已经公开的信息,该漏洞影响分布情况如下。

• OpenSSL 1.0.1f               (受影响)

• OpenSSL 1.0.2-beta       (受影响)

• OpenSSL 1.0.1g               (不受影响)

• OpenSSL 1.0.0 branch     (不受影响)

• OpenSSL 0.9.8 branch     (不受影响)

3. 产生漏洞的主要原因

比较OpenSSL 1.0.1g、OpenSSL 1.0.1f两个文件。

在这两个文件的ssl文件夹中的d1_both.c、t1_lib.c两个文件中,都有一个tls1_process_heartbeat函数,它就是漏洞的关键。如下图:

图左比图右的代码,添加了两个判断,主要是针对length字段。再查看length的声明,如下图。

OpenSSL 1.0.1f处理过程代码:

处理过程:从数据中读取长度payload,并根据数据包长度直接申请内存,然后拷贝payload 大小的数据到申请的内存空间;由于没有验证length是否真是数据包的实际大小,所以如果让有心人伪造一个length字段(length字段比实际数据要大),就可以越界访问内存,从而导致内存泄漏。

而OpenSSL 1.0.1g 文件中,则对length字段进行了相关的验证。

[责任编辑:杨勇]

相关文章:

关于瑞星|联系方式|服务与支持|产品下载| 商务合作|渠道伙伴|网站内容指正

地址:北京市中关村大街22号•中科大厦1305室  邮编:100190  总机:(010)82678866  传真:(010)62564934 客服电话:400-660-8866

版权所有 北京瑞星信息技术有限公司  许可证号:京ICP证080383号 京ICP备08104897号

备案编号:京公海网安备110108001247号   京网文[2011]0121-043号