腾讯安全研究员对 OpenSSL 拒绝服务漏洞 CVE-2021-3449 的分析

Andrew2021-04-09 10:40:31

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...

openssl拒绝服务攻击
本作品采用《CC 协议》,转载必须注明作者和本文链接
近日,安识科技A-Team团队监测到一则 OpenSSL 组件存在拒绝服务漏洞的信息,漏洞编号:CVE-2022-0778,漏洞威胁等级:高危。该漏洞是由于证书解析时使用的 BN_mod_sqrt() 函数存在一个错误,它会导致在非质数的情况下永远循环。可通过生成包含无效的显式曲线参数的证书来触发无限循环。由于证书解析是在验证证书签名之前进行的,因此任何解析外部提供的证书的程序都可能受到拒绝服务
由于OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连线者的身份。OpenSSL应用极为广泛,已是全球互联网最重要的基础设施之一,OpenSSL高危漏洞的披露,立刻引起安全研究人员的广泛关注。腾讯安全于3月26日已发布安全风险通告,提醒企业安全运维人员尽快修复漏洞。腾讯安全研究员对OpenSSL拒绝服务漏洞进行了详细的技术分析。OpenSSL 不受此问题影响。
OpenSSL Project发布了安全补丁程序,以解决三个漏洞,两个拒绝服务漏洞以及不正确的SSLv2回滚保护问题。阅读咨询. 该问题的严重性被评为“中等”,它影响OpenSSL 版及更低版本。OpenSSL还解决了CipherUpdate中CVE-2021-23840的一个低严重性整数溢出漏洞,该漏洞可能被利用来导致崩溃。Trustwave的和Joel Luellwitz于2021年1月21日将该漏洞报告给OpenSSL Project。此问题影响使用OpenSSL 的服务器,该服务器容易受到SSL版本回滚攻击
OpenSSL项目警告TLS / SSL工具包中存在“高严重性”安全漏洞,该漏洞使用户容易受到拒绝服务攻击。该漏洞是空指针取消引用,成功利用该漏洞可能会触发拒绝服务条件。“ GeneralName类型是一种通用类型,用于表示不同类型的名称。这些名称类型之一称为EDIPartyName。OpenSSL提供了一个GENERAL_NAME_cmp函数,该函数比较GENERAL_NAME的不同实例以查看它们是否相等。”读取OpenSSL Project发布的警报。该漏洞影响所有OpenSSL 和版本,建议用户升级到OpenSSL i。
广泛使用的加密库 OpenSSL 发现了一个可远程利用的高危漏洞。计算模平方根的 BN_mod_sqrt() 包含 bug 会导致无限循环,它能用于发动拒绝服务攻击
OpenSSL项目解决了两个高严重性漏洞,其中一个与验证证书链有关,另一个可以触发DoS条件。该CVE-2021-3449漏洞可能被利用来触发发送特制重新协商DoS条件的ClientHello从客户端消息。
360漏洞云监测到OpenSSL今日发布安全通告,修复了OpenSSL中的一个缓冲区溢出漏洞(CVE-2021-3711)和一个拒绝服务漏洞(CVE-2021-3712)。
网站攻击技术,一篇打包带走!
本文综合论文、博客、案例揭示了开源软件供应过程中风险点与防护手段,为渗透测试工程师、运维人员提供攻击、防守思路,为开发者开发、审查自己代码提供安全建议,为安全产品研发提供更多方向。
代码混淆是帮助威胁参与者向人工审查者或安全软件隐藏其代码的恶意性质,以便他们能够逃避检测。
Andrew
暂无描述