OpenSSL 軟件庫(kù)曝高危漏洞,可實(shí)施中間人攻擊
OpenSSL 修補(bǔ)了由蘋果發(fā)現(xiàn)的高嚴(yán)重性漏洞 CVE-2024-12797,該漏洞可能導(dǎo)致中間人攻擊。
OpenSSL 項(xiàng)目在其安全通信庫(kù)中修復(fù)了一個(gè)高嚴(yán)重性漏洞,編號(hào)為 CVE-2024-12797。OpenSSL 軟件庫(kù)用于在計(jì)算機(jī)網(wǎng)絡(luò)中實(shí)現(xiàn)安全通信,防止竊聽并確保通信雙方的認(rèn)證。該庫(kù)包含了安全套接層(SSL)和傳輸層安全(TLS)協(xié)議的開源實(shí)現(xiàn)。
漏洞詳情
該漏洞影響使用 RFC7250 原始公鑰(RPK)的客戶端 TLS/DTLS 連接。由于在 SSL_VERIFY_PEER 模式下服務(wù)器認(rèn)證檢查失敗,攻擊者可能利用此漏洞發(fā)起中間人攻擊。蘋果研究人員于 2024 年 12 月 18 日?qǐng)?bào)告了該漏洞,并由 Viktor Dukhovni 修復(fù)。
影響范圍
漏洞主要影響那些顯式啟用 RPK 并依賴 SSL_VERIFY_PEER 來檢測(cè)認(rèn)證失敗的 TLS 客戶端。OpenSSL 維護(hù)者指出,默認(rèn)情況下,RPK 在 TLS 客戶端和服務(wù)器中均為禁用狀態(tài)。項(xiàng)目公告中明確表示:“只有在 TLS 客戶端顯式啟用服務(wù)器端的 RPK,且服務(wù)器也發(fā)送 RPK 而非 X.509 證書鏈時(shí),才會(huì)引發(fā)此問題。受影響的客戶端通過設(shè)置驗(yàn)證模式為 SSL_VERIFY_PEER,期望在服務(wù)器的 RPK 與預(yù)期公鑰不匹配時(shí)握手失敗?!?/p>
修復(fù)建議
即便如此,啟用服務(wù)器端原始公鑰的客戶端仍可通過調(diào)用 SSL_get_verify_result() 來檢查原始公鑰驗(yàn)證是否失敗。該漏洞最初出現(xiàn)在 OpenSSL 3.2 版本的 RPK 支持實(shí)現(xiàn)中。受影響的版本包括 OpenSSL 3.4、3.3 和 3.2,此漏洞已在 3.4.1、3.3.2 和 3.2.4 版本中得到修復(fù)。
歷史漏洞回顧
2022 年 11 月,OpenSSL 項(xiàng)目發(fā)布安全更新,修復(fù)了其加密庫(kù)中的兩個(gè)高嚴(yán)重性漏洞,編號(hào)分別為 CVE-2022-3602 和 CVE-2022-3786。這兩個(gè)漏洞影響了 3.0.0 至 3.0.6 版本的庫(kù)。
這兩個(gè)漏洞均為緩沖區(qū)溢出問題,攻擊者可通過提供特制的電子郵件地址在 X.509 證書驗(yàn)證中觸發(fā)。Censys 發(fā)布的一篇文章中提到:“第一個(gè)漏洞 CVE-2022-3786 允許攻擊者‘在證書中構(gòu)造惡意電子郵件地址,以溢出包含.字符的任意字節(jié)。第二個(gè)漏洞 CVE-2022-3602 類似,但攻擊者可以通過惡意電子郵件溢出棧上的四個(gè)受控字節(jié)?!@可能導(dǎo)致服務(wù)拒絕或遠(yuǎn)程代碼執(zhí)行。”
這種緩沖區(qū)溢出可能導(dǎo)致服務(wù)拒絕,甚至引發(fā)遠(yuǎn)程代碼執(zhí)行。