驗證 X.509 憑證時 OpenSSL 中的緩衝區溢位被利用

OpenSSL 加密庫 3.0.7 的修正版本已發布,修復了兩個漏洞。 這兩個問題都是由 X.509 憑證中的電子郵件欄位驗證程式碼中的緩衝區溢位引起的,並且在處理特殊框架的憑證時可能會導致程式碼執行。 在發布修復程式時,OpenSSL 開發人員尚未記錄任何可能導致攻擊者程式碼執行的可用漏洞存在的證據。

儘管新版本的預發佈公告中提到存在嚴重問題,但事實上,在發布的更新中,該漏洞的狀態已降低至危險但不是嚴重漏洞的等級。 根據專案中採用的規則,如果問題出現在非典型配置中或在實踐中利用漏洞的可能性較低,則危險等級會降低。

在這種情況下,嚴重性等級被降低,因為多個組織對此漏洞的詳細分析得出的結論是,在利用過程中執行程式碼的能力被許多平台中使用的堆疊溢出保護機制阻止。 此外,某些 Linux 發行版中使用的網格佈局會導致超出範圍的 4 個位元組疊加在堆疊上尚未使用的下一個緩衝區上。 然而,有可能存在可被利用來執行程式碼的平台。

發現的問題:

  • CVE-2022-3602 - 此漏洞最初被認為是嚴重漏洞,在檢查 X.4 憑證中具有專門設計的電子郵件地址的欄位時會導致 509 位元組緩衝區溢位。 在 TLS 用戶端中,當連接到攻擊者控制的伺服器時,該漏洞可能會被利用。 在 TLS 伺服器上,如果使用使用憑證的用戶端驗證,則可以利用該漏洞。 在這種情況下,漏洞出現在驗證與憑證關聯的信任鏈之後的階段,即此攻擊要求憑證授權單位驗證攻擊者的惡意憑證。
  • CVE-2022-3786 是利用 CVE-2022-3602 漏洞的另一個載體,是在問題分析過程中發現的。 差異歸結為包含“.”的任意數量的位元組可能導致堆疊上的緩衝區溢位。 (即攻擊者無法控制溢出的內容,只能利用該問題導致應用程式崩潰)。

此漏洞僅出現在OpenSSL 3.0.x分支中(漏洞是在3.0.x分支中新增的Unicode轉換程式碼(punycode)中引入的)。 OpenSSL 1.1.1 版本以及 OpenSSL 分支庫 LibreSSL 和 BoringSSL 不受此問題的影響。 同時發布了OpenSSL 1.1.1s更新,其中僅包含非安全性錯誤修復。

OpenSSL 3.0分支用於Ubuntu 22.04,CentOS Stream 9,RHEL 9,OpenMandriva 4.2,Gentoo,Fedora 36,Debian測試/不穩定等發行版。 建議這些系統的使用者盡快安裝更新(Debian、Ubuntu、RHEL、SUSE/openSUSE、Fedora、Arch)。 在 SUSE Linux Enterprise 15 SP4 和 openSUSE Leap 15.4 中,可以選擇使用 OpenSSL 3.0 的軟體包,系統軟體包使用 1.1.1 分支。 Debian 1、Arch Linux、Void Linux、Ubuntu 11、Slackware、ALT Linux、RHEL 20.04、OpenWrt、Alpine Linux 8 和 FreeBSD 仍保留在 OpenSSL 3.16.x 分支上。

來源: opennet.ru

添加評論