漏洞新闻-- OpenSSL SSL_peek()函数引起拒绝服务

漏洞概述:

攻击者可以通过发送一个空记录,从而在调用SSL_peek()函数时,会进入到一个死循环当中,程序不能继续执行,引起拒绝服务。OpenSSL 1.1.0 SSL/TLS将对SSL_peek()在通话过程中,如果对方发送一个空记录。这可能是由恶意的同行在拒绝服务被利用攻击。

OpenSSL的1.1.0的用户应该升级到1.1.0a

严重程度:中

影响版本:

OpenSSL Project OpenSSL < 1.1.0a

不受影响:

OpenSSL Project OpenSSL 1.1.0a

漏洞危害:

如果攻击者发送一个空记录,程序在调用SSL_peek()时,进入一个死循环,造成拒绝服务攻击。

漏洞详情:

  • 漏洞成因:原来SSL_peek()函数代码如下:
if (!peek) {
SSL3_RECORD_sub_length(rr, n);                        
SSL3_RECORD_add_off(rr, n);
  • 从上面的代码可以看到,如果peek为空,!peek则为真,然后进入代码段中,直接进行sub和add等运算,这样就会进入到一个死循环当中,程序不能继续执行。
    官方公布的修复代码,代码会对读取的记录rr进行长度计算,如果为0,则重新读取下一个记录,从而保证程序顺利进行。

修复建议:

升级到最新版本,官方发布版本更新链接:
https://www.openssl.org/source/
各个供应商获得软件更新链接:
Debian:https://security-tracker.debian.org/tracker/CVE-2016-6305
Ubuntu:http://www.ubuntu.com/usn/usn-3087-1/
FreeBSD:https://www.freebsd.org/security/advisories/FreeBSD-SA-16:26.openssl.asc
Redhat/CentOS:https://access.redhat.com/security/cve/CVE-2016-6305

参考文章:

https://www.openssl.org/news/secadv/20160922.txt

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容