OpenSSL 3.0.0 < 3.0.8 多個弱點

high Nessus Plugin ID 168829

概要

遠端服務受到多種弱點的影響。

說明

遠端主機上安裝的 OpenSSL 為 3.0.8 之前版本。因此,它受到拒絕服務 (DoS) 弱點的影響。如果 X.509 憑證包含格式錯誤的原則限制並且已啟用原則處理,則寫入鎖定會遞回進行兩次。在某些作業系統上 (最廣泛的是:Windows),當受影響的處理程序懸置時,這會導致拒絕服務。在公開伺服器上啟用的原則處理不被視為常見設定。將 -policy 引數傳遞至命令行公用程式,或呼叫 X509_VERIFY_PARAM_add0_policy() 或 X509_VERIFY_PARAM_set1_policy() 函式,即可啟用原則處理。

- X.509 GeneralName 中有一個與 X.400 位址處理相關的類型混淆弱點。
X.400 位址被剖析為 ASN1_STRING,但 GENERAL_NAME 的公開結構定義錯誤地將 x400Address 欄位的類型指定為 ASN1_TYPE。此欄位隨後會被 OpenSSL 函式 GENERAL_NAME_cmp 解譯為 ASN1_TYPE,而非 ASN1_STRING。啟用 CRL 檢查時 (即應用程式設定 X509_V_FLAG_CRL_CHECK 旗標),此弱點可能允許攻擊者向 memcmp 呼叫傳遞任意指標,使其能夠讀取記憶體內容或發動拒絕服務攻擊。在大多數情況下,攻擊者需要同時提供憑證鍊和 CRL,兩者都不需要有效的簽章。如果攻擊者只控制其中一個輸入,則另一個輸入必須已包含 X.400 位址作為 CRL 發佈點,此情況並不常見。因此,此弱點最有可能只影響已實作透過網路擷取 CRL 這一功能的應用程式。(CVE-2023-0286)

- 如果 X.509 憑證包含格式錯誤的原則限制並且已啟用原則處理,則寫入鎖定會遞回進行兩次。在某些作業系統上 (最廣泛的是:Windows),當受影響的處理程序懸置時,這會導致拒絕服務。在公開伺服器上啟用的原則處理不被視為常見設定。透過

將 -policy 引數傳遞至命令行公用程式,或呼叫 X509_VERIFY_PARAM_set1_policies() 函式,即可啟用原則處理。更新 (2023 年 3 月 31 日):已根據 CVE-2023-0466 更正原則處理啟用的描述。(CVE-2022-3996)

- 在 X.509 憑證驗證中可觸發緩衝區滿溢,特別是在名稱限制檢查中。請注意,此問題會在憑證鏈簽章驗證之後發生,且需要 CA 簽署惡意憑證,或是即使無法建構受信任的簽發者路徑,應用程式仍需繼續進行憑證驗證。讀取緩衝區滿溢可能導致當機,進而造成拒絕服務攻擊。理論上,這也可能導致私人記憶體內容 (例如私密金鑰或敏感純文字) 洩漏,但截至本公告發佈時,我們尚未發現任何可導致記憶體內容洩漏的有效攻擊。在 TLS 用戶端中,藉由連線至惡意伺服器即可觸發此問題。在 TLS 伺服器中,如果伺服器要求用戶端驗證且惡意用戶端連線,則可觸發此問題。(CVE-2022-4203)

- OpenSSL RSA Decryption 實作中存在計時型旁路,其足可在 Bleichenbacher 式攻擊中跨網路復原純文字。若要成功解密,攻擊者必須能夠傳送大量的試用訊息以進行解密。
此弱點會影響所有 RSA 填補模式:PKCS#1 v1.5、RSA-OEAP 和 RSASVE。例如,在 TLS 連線中,用戶端通常會使用 RSA 將加密的 pre-master 密碼傳送至伺服器。攻擊者若觀察到用戶端與伺服器之間存在真正連線,就可以利用此缺陷將試用訊息傳送至伺服器,並記錄處理這些訊息所用的時間。攻擊者獲得充足的訊息之後,便可復原用於最初連線的 pre-master 密碼,進而能夠解密透過該連線傳送的應用程式資料。(CVE-2022-4304)

- PEM_read_bio_ex() 函式會從 BIO 讀取 PEM 檔案,並剖析和解碼名稱 (例如:
CERTIFICATE)、任何標頭資料和承載資料。如果函式成功運行,則使用包含相關解碼資料之緩衝區的指標填入 name_out、標頭和資料引數。
呼叫者負責釋放這些緩衝區。攻擊者可以建構會產生 0 位元組承載資料的 PEM 檔案。在此情況下,PEM_read_bio_ex() 會傳回失敗程式碼,但會在標頭引數中填入已釋放的緩衝區指標。如果呼叫者也釋放此緩衝區,則會發生雙重釋放。這很可能會導致當機。能夠提供惡意 PEM 檔案進行剖析的攻擊者可利用此弱點發動拒絕服務攻擊。PEM_read_bio() 和 PEM_read() 函式是 PEM_read_bio_ex() 的簡單包裝函式,因此這些函式也會直接受到影響。其他一些 OpenSSL 函式也會間接呼叫這些函式,包括同樣容易遭受攻擊的 PEM_X509_INFO_read_bio_ex() 和 SSL_CTX_use_serverinfo_file()。若在 OpenSSL 內部使用部分此類函式,則不會受到影響,因為如果 PEM_read_bio_ex() 傳回失敗程式碼,呼叫者將不會釋放標頭引數。這些位置包括 PEM_read_bio_TYPE() 函式以及 OpenSSL 3.0 中引入的解碼器。OpenSSL asn1parse 命令行應用程式也受此問題影響。(CVE-2022-4450)

請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。

解決方案

升級至 OpenSSL 3.0.8 或更新版本。

另請參閱

https://www.cve.org/CVERecord?id=CVE-2023-0401

https://www.openssl.org/news/secadv/20230207.txt

https://www.openssl.org/policies/secpolicy.html

https://www.cve.org/CVERecord?id=CVE-2023-0286

https://www.cve.org/CVERecord?id=CVE-2023-0217

https://www.cve.org/CVERecord?id=CVE-2023-0216

https://www.cve.org/CVERecord?id=CVE-2023-0215

https://www.cve.org/CVERecord?id=CVE-2022-4450

https://www.cve.org/CVERecord?id=CVE-2022-4304

https://www.cve.org/CVERecord?id=CVE-2022-4203

Plugin 詳細資訊

嚴重性: High

ID: 168829

檔案名稱: openssl_3_0_8.nasl

版本: 1.17

類型: combined

代理程式: windows, macosx, unix

系列: Web Servers

已發布: 2022/12/15

已更新: 2024/1/8

支援的感應器: Nessus Agent, Nessus

風險資訊

VPR

風險因素: Medium

分數: 6.0

CVSS v2

風險因素: High

基本分數: 7.1

時間分數: 5.3

媒介: CVSS2#AV:N/AC:H/Au:N/C:C/I:N/A:C

CVSS 評分資料來源: CVE-2023-0286

CVSS v3

風險因素: High

基本分數: 7.4

時間分數: 6.4

媒介: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H

時間媒介: CVSS:3.0/E:U/RL:O/RC:C

弱點資訊

CPE: cpe:/a:openssl:openssl

必要的 KB 項目: installed_sw/OpenSSL

可輕鬆利用: No known exploits are available

修補程式發佈日期: 2022/12/13

弱點發布日期: 2022/12/13

參考資訊

CVE: CVE-2022-3996, CVE-2022-4203, CVE-2022-4304, CVE-2022-4450, CVE-2023-0215, CVE-2023-0216, CVE-2023-0217, CVE-2023-0286, CVE-2023-0401

IAVA: 2022-A-0518-S