腾讯安全研究员对 OpenSSL 拒绝服务漏洞 CVE-2021-3449 的分析
3月25日,OpenSSL官方发布高危漏洞风险通告,修复了OpenSSL拒绝服务漏洞(CVE-2021-3449)。
由于OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。OpenSSL应用极为广泛,已是全球互联网最重要的基础设施之一,OpenSSL高危漏洞的披露,立刻引起安全研究人员的广泛关注。
腾讯安全于3月26日已发布安全风险通告,提醒企业安全运维人员尽快修复漏洞。腾讯主机安全(云镜)已支持检测OpenSSL拒绝服务漏洞(CVE-2021-3449),腾讯云WAF应用防火墙已支持清洗OpenSSL拒绝服务漏洞(CVE-2021-3449)利用流量。
腾讯安全研究员对OpenSSL拒绝服务漏洞进行了详细的技术分析。
A、漏洞形成原理
TLSv1.2在进行再次协商时,没有对支持算法数组长度的变量值进行初始化,导致再次协商时复用初次协商的值,进一步导致内存读异常。
B、攻击条件
1、启用了 TLSv1.2
C、源码解析
1、只初始化了peer_sigalgs
2、解析客户端传入的协商消息,提取长度和内容
3、遍历客户端传入的内容,若ptmp为NULL,而preflen有值,则触发访问异常
D、源码修复
https://github.com/openssl/openssl/commit/...
给peer_sigalgslen增加初始值
其中描述了引入过程:
https://github.com/openssl/openssl/commit/...
E、PoC
github.com/terorie/cve-2021-3449
实际是tls库,在协商过程这里做了个改动,判断是否初次,若再次协商,则不设置supportedSignatureAlgorithms,只设置supportedSignatureAlgorithmsCert。
F、受影响的版本
此问题影响所有OpenSSL 1.1.1版本。
OpenSSL 1.0.2不受此问题影响。
G、安全版本
OpenSSL 1.1.1k
H、修复方案
1、编译修复的话参照OpenSSL升级文章:https://mp.weixin.qq.com/s/uVWp4pkLttuSwDnDA1m52g,主要看OpenSSL 1.1.1用户部分,将下载的官方源码版本改成 1.1.1k 即可。
2、Ubuntu
主要影响Ubuntu 18.04、20.04、20.10、21.04,已经发布了修复版本:ubuntu.com/security/cve-2021-3449
sudo apt-get updatesudo apt-get install --only-upgrade openssl
3、CentOS
主要影响CentOS 8、8.2,当前也已发布了修复版本:https://access.redhat.com/errata/RHSA-2021...
执行命令:
yum update openssl
参考链接:
https://s.tencent.com/research/bsafe/1281.html
https://www.openssl.org/news/secadv/20210325.txt
https://www.cybersecurity-help.cz/vdb/SB2021032518
原创:腾讯安全威胁情报中心
原文链接:https://mp.weixin.qq.com/s/h1EGkxMcHvpk4V3...
