騰訊安全研究員對 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.htmlhttps://www.openssl.org/news/secadv/20210325.txthttps://www.cybersecurity-help.cz/vdb/SB2021032518
原創:騰訊安全威脅情報中心
原文鏈接:https://mp.weixin.qq.com/s/h1EGkxMcHvpk4V3...