9月22日,OpenSSL修复了OCSP状态请求扩展严重漏洞,这是其修复的14个漏洞中最为严重的一个。

 

漏洞概述

Open SSL OCSP 状态请求扩展存在严重漏洞,该漏洞令恶意客户端能耗尽服务器内存。

利用该漏洞,能使默认配置的服务器在每次协议重商时分配一段 OCSP ids 内存, 不断重复协商可令服务器内存无限消耗,即使服务器并未配置 OCSP。

理论上,一个 OCSP id 最多 65,535 字节,攻击者可以不断重商令服务器每次内存消耗近 64K。

但从实现来说,在 OpenSSL 1.0.2 版本中对 ClientHello 长度做了 16,384 字节的限制,因此每次重商只能令服务器内存消耗约 16K。

但在最新的 1.1.0 版本中,对 ClientHello 长度的限制增加到 131,396 字节,那么对使用 1.1.0 版本的服务器,每次重商会令内存消耗近 64K。

 

问题

攻击者可通过发送大量 OCSP 状态请求扩展导致服务器拒绝服务。

 

如何利用

攻击者使用 TLS 扩展 "TLSEXT_TYPE_status_request",填充 OCSP ids 并不断请求重商。

 

漏洞危害

 

攻击者可通过不断重商,发送大量 OCSP 状态请求扩展,导致服务器内存无限增长,最终导致服务器拒绝服务。默认OpenSSL配置的服务器会受影响,即使其并不支持 OCSP,除非在编译时使用了“no-ocsp”编译选项。

 

受影响版本:

OpenSSL 0.9.8h through 0.9.8v

OpenSSL 1.0.1 through 1.0.1t

OpenSSL 1.0.2 through 1.0.1h

OpenSSL 1.1.0

 

不受影响版本:

OpenSSL 1.0.1u

OpenSSL 1.0.2i

OpenSSL 1.1.0a

 

修复对策

升级到最新版本可避免被攻击。不需要注销私钥或证书,攻击者不能窃取到私钥。

OpenSSL 1.1.0 应升级到 1.1.0a 或更高版本。

OpenSSL 1.0.2 应升级到 1.0.2i 或更高版本。

OpenSSL 1.0.1 应升级到 1.0.1u 或更高版本。

补丁地址:https://www.openssl.org/source/