說明
遠端主機上安裝的 OpenSSL 版本為 1.1.1ze 之前的版本。因此,會受到 1.1.1ze 公告中所提及的多個弱點影響。
- 問題摘要:在應用程式中處理格式錯誤的 PKCS#12 檔案時,可能會發生無效或 NULL 指標解除參照。影響摘要:處理格式錯誤 PKCS#12 檔案的應用程式可能會在記憶體讀取時解除參照無效或 NULL 指標,進而導致拒絕服務。PKCS#12 剖析程式碼中存在一個類型混淆弱點,在未先驗證類型即存取 ASN1_TYPE union 成員的情況下,會造成無效的指標讀取。該位置限制在 1 位元組的位址空間內,這表示任何嘗試的指標操控只能針對 0x00 到 0xFF 之間的位址進行。此範圍對應於零頁面,其在大多數現代作業系統上都未對應,且會確實地造成當機,且僅會導致拒絕服務。使用者或應用程式也必須處理惡意製作的 PKCS#12 檔案,才能惡意利用此問題。在應用程式中接受不受信任的 PKCS#12 檔案並不常見,因為這些檔案通常用來儲存定義所信任的私密金鑰。基於這些原因,我們將此問題的嚴重性評估為「低危」。3.5、3.4、3.3 和 3.0 中的 FIPS 模組不受此問題影響,因為 PKCS12 實作位於 OpenSSL FIPS 模組邊界之外。OpenSSL 3.6、3.5、3.4、3.3、3.0 和 1.1.1 易受此問題影響。OpenSSL 1.0.2 不會受到此問題影響。已在 OpenSSL 1.1.1ze 版中修正此問題 (受影響的是 1.1.1 和之後版本)。(CVE-2026-22795)
- 問題摘要:已簽署 PKCS#7 資料的簽章驗證中存在一個類型混淆弱點,其中在未先驗證類型的情況下存取 ASN1_TYPE union 成員,造成在處理格式錯誤的 PKCS#7 資料時發生無效或 NULL 指標解除參照。影響摘要:執行 PKCS#7 資料簽章驗證或直接呼叫 PKCS7_digest_from_attributes() 函式的應用程式在讀取時,可能會解除參照無效或 NULL 指標,進而導致拒絕服務。PKCS7_digest_from_attributes() 函式會在未驗證類型的情況下,存取訊息摘要屬性值。當類型不是 V_ASN1_OCTET_STRING 時,這會導致透過 ASN1_TYPE union 存取無效記憶體,進而造成當機。若要惡意利用此弱點,攻擊者需要提供格式錯誤的已簽署 PKCS#7 給應用程式以進行驗證。惡意利用只會造成應用程式拒絕服務,PKCS7 API 是舊版,應用程式應該改用 CMS API。基於這些原因,我們將此問題的嚴重性評估為「低危」。3.5、3.4、3.3 和 3.0 中的 FIPS 模組不受此問題影響,因為 PKCS#7 剖析實作位於 OpenSSL FIPS 模組邊界之外。OpenSSL 3.6、3.5、3.4、3.3、3.0、1.1.1 和 1.0.2 易受此問題影響。已在 OpenSSL 1.1.1ze 版中修正此問題 (受影響的是 1.1.1 和之後版本)。(CVE-2026-22796)
- 問題摘要:處理格式錯誤的 PKCS#12 檔案可在 PKCS12_item_decrypt_d2i_ex() 函式中觸發 NULL 指標解除參照。影響摘要:NULL 指標解除參照問題可能會觸發當機,進而導致處理 PKCS#12 檔案的應用程式拒絕服務。PKCS12_item_decrypt_d2i_ex() 函式未檢查 oct 參數是否為 NULL,便將其解除參照。使用格式錯誤的 PKCS#12 檔案從 PKCS12_unpack_p7encdata() 呼叫時,此參數可能為 NULL,進而造成當機。此弱點僅會導致程式拒絕服務,不會造成程式碼執行攻擊或記憶體洩漏。若要惡意利用此問題,攻擊者需要提供格式錯誤的 PKCS#12 檔案給應用程式以進行處理。因此,根據我們的安全性原則,將此問題的嚴重性評估為「低危」。3.6、3.5、3.4、3.3 和 3.0 中的 FIPS 模組不受此問題影響,因為 PKCS#12 實作位於 OpenSSL FIPS 模組邊界之外。
OpenSSL 3.6、3.5、3.4、3.3、3.0、1.1.1 和 1.0.2 易受此問題影響。已在 OpenSSL 1.1.1ze 版中修正此問題 (受影響的是 1.1.1 和之後版本)。(CVE-2025-69421)
- 問題摘要:時間戳記回應驗證程式碼中存在類型混淆弱點,在未先驗證類型的情況下存取 ASN1_TYPE union 成員,會造成在處理格式錯誤的時間戳記回應檔案時發生無效或 NULL 指標解除參照問題。影響摘要:如果應用程式使用格式錯誤的時間戳記回應呼叫 TS_RESP_verify_response(),則在讀取時可能會解除參照無效或 NULL 指標,進而導致拒絕服務。ossl_ess_get_signing_cert() 和 ossl_ess_get_signing_cert_v2() 函式存取簽署憑證屬性值時未驗證其類型。
當類型不是 V_ASN1_SEQUENCE 時,可以透過 ASN1_TYPE union 存取無效記憶體,進而造成當機。若要惡意利用此弱點,攻擊者需要提供格式錯誤的時間戳記回應給應用程式來驗證時間戳記回應。TimeStamp 通訊協定 (RFC 3161) 並未得到廣泛使用,遭惡意利用後只會造成程式拒絕服務。基於這些原因,我們將此問題的嚴重性評估為「低危」。3.5、3.4、3.3 和 3.0 中的 FIPS 模組不受此問題影響,因為時間戳記回應實作位於 OpenSSL FIPS 模組邊界之外。OpenSSL 3.6、3.5、3.4、3.3、3.0 和 1.1.1 易受此問題影響。OpenSSL 1.0.2 不會受到此問題影響。已在 OpenSSL 1.1.1ze 版中修正此問題 (受影響的是 1.1.1 和之後版本)。(CVE-2025-69420)
- 問題摘要:針對具有 BMPString (UTF-16BE) 友好名稱且包含非 ASCII BMP 程式碼點的惡意特製的 PKCS#12 檔案,呼叫 PKCS12_get_friendlyname() 函式時,可能觸發在配置的緩衝區之前進行單一位元組寫入的弱點。時間戳記回應超出邊界寫入問題可造成記憶體損毀,進而導致包括拒絕服務等多種後果。OPENSSL_uni2utf8() 函式會執行從 PKCS#12 BMPString (UTF-16BE) 到 UTF-8 的兩次傳遞轉換。在第二次傳遞中,當發出 UTF-8 位元組時,協助程式函式 bmp_to_utf8() 會錯誤地將剩餘 UTF-16 來源位元組計數作為目的地緩衝區容量轉送至 UTF8_putc()。針對 U+07FF 以上的 BMP 程式碼點,UTF-8 需要三個位元組,但轉送的容量可能只有兩個位元組。UTF8_putc() 之後會傳回 -1,且此負值會在未經驗證的情況下新增至輸出長度,導致長度變成負值。隨後的結尾 NUL 位元組會以負位移寫入,進而造成堆積配置緩衝區之外的寫入。
剖析受攻擊者控制的 PKCS#12 檔案時,可透過公開 PKCS12_get_friendlyname() API 連線至該弱點。當 PKCS12_parse() 使用沒有此問題的不同程式碼路徑時,PKCS12_get_friendlyname() 會直接叫用易受攻擊的函式。若要利用此弱點,攻擊者需要提供惡意的 PKCS#12 檔案以供應用程式剖析,且攻擊者可在配置的緩衝區前觸發一個零位元組寫入。因此,根據我們的安全性原則,將此問題的嚴重性評估為「低危」。3.6、3.5、3.4、3.3 和 3.0 中的 FIPS 模組不受此問題影響,因為 PKCS#12 實作位於 OpenSSL FIPS 模組邊界之外。OpenSSL 3.6、3.5、3.4、3.3、3.0 和 1.1.1 易受此問題影響。OpenSSL 1.0.2 不會受到此問題影響。已在 OpenSSL 1.1.1ze 版中修正此問題 (受影響的是 1.1.1 和之後版本)。(CVE-2025-69419)
請注意,Nessus 並未測試這些問題,而是僅依據應用程式自我報告的版本號碼作出判斷。
解決方案
升級至 OpenSSL 1.1.1ze 或更新版本。
Plugin 詳細資訊
檔案名稱: openssl_1_1_1ze.nasl
代理程式: windows, macosx, unix
組態: 啟用徹底檢查 (optional)
支援的感應器: Continuous Assessment, Nessus Agent, Nessus
風險資訊
媒介: CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C
媒介: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/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