BigSig,Mozilla NSS 中的一個允許代碼執行的漏洞

有關的消息 識別關鍵漏洞 (已在 CVE-2021-43527 下列出) en 密碼庫集 新高中 (網絡安全服務) 來自 Mozilla 的可能導致惡意代碼執行 處理使用 DER(傑出編碼規則)指定的 DSA 或 RSA-PSS 數字簽名時。

問題 體現在使用 NSS 處理數字簽名的應用程序中 CMS、S/MIME、PKCS # 7 和 PKCS # 12, 或在部署中驗證證書時 TLS、X.509、OCSP 和 CRL。 該漏洞可能出現在具有 TLS、DTLS 和 S/MIME 支持的各種客戶端和服務器應用程序、電子郵件客戶端以及使用 NSS CERT_VerifyCertificate () 調用來驗證數字簽名的 PDF 查看器中。

LibreOffice、Evolution 和 Evince 被列為易受攻擊的應用程序示例. 該問題還可能影響 Pidgin、Apache OpenOffice、Suricata、Curl 等項目。

同時 該漏洞在 Firefox、Thunderbird 和 Tor 瀏覽器中未出現,它使用單獨的 mozilla::pkix 庫進行驗證,這也是 NSS 的一部分。 這 基於 Chrome 的瀏覽器 (除非它們是專門用 NSS 編譯的),直到 2015 年才使用 NSS,但隨後轉移到 BoringSSL, 他們不受問題的影響。

該漏洞是由於 vfy_CreateContext 中的證書驗證碼中的一個錯誤 secvfy.c 文件的功能。 當客戶端從服務器讀取證書時,錯誤就會出現 當服務器處理客戶端的證書時。

NSS在驗證DER編碼的數字簽名時,將簽名解碼成一個固定大小的緩衝區,並將這個緩衝區傳遞給PKCS#11模塊,在後處理過程中,對於DSA和RSA-PSS簽名,大小被錯誤驗證,導致其中,如果數字簽名的大小超過16384位(為緩衝區分配了2048字節,但未驗證簽名是否可以更大),則會導致為VFYContextStr結構分配的緩衝區溢出。

包含漏洞的代碼可以追溯到 2003 年,但直到 2012 年重構才成為威脅。 2017 年,在實現 RSA-PSS 支持時犯了同樣的錯誤。 為了進行攻擊,不需要消耗大量資源生成某些密鑰來獲取必要的數據,因為溢出發生在驗證數字簽名有效性之前的階段。 數據的越界部分被寫入包含函數指針的內存區域,從而可以輕鬆創建有效的漏洞利用。

該漏洞是由谷歌零項目研究人員發現的 在使用新的模糊測試方法的實驗期間,很好地證明了在經過充分測試的已知項目中,微不足道的漏洞是如何長時間未被發現的。

至於 未引起注意的主要問題 許久:

  • NSS 驅動器庫和模糊測試不是完全進行的,而是在單個組件級別進行的。
  • 例如,解碼DER和處理證書的代碼是分開驗證的; 在fuzzing的過程中,很可能已經拿到了證書,導致了問題漏洞的表現,但是其驗證沒有到達驗證碼,問題也沒有暴露出來。
  • 在模糊測試期間,在 NSS 中沒有此類限制的情況下,對輸出的大小(10,000 字節)設置了嚴格的限制(正常模式下的許多結構可能大於 10,000 字節,因此,為了識別問題,需要更多的輸入數據)。 對於完整驗證,限制應該是 2 24 -1 字節 (16 MB),這對應於 TLS 中允許的證書的最大大小。
  • 模糊測試對代碼覆蓋率的誤解。 易受攻擊的代碼經過積極測試,但使用了無法生成所需輸入數據的 fuzer。 例如,fuzzer tls_server_target 使用了一組預定義的開箱即用證書,它將證書驗證碼的驗證限制為僅 TLS 消息和協議狀態更改。

最後, 值得一提的是,NSS 3.73 和 NSS ESR 3.68.1 中已經修復了代號 BigSig 的問題 並且該解決方案的更新包形式已經在不同的發行版中發布:Debian、RHEL、Ubuntu、SUSE、Arch Linux、Gentoo、FreeBSD 等。

如果您想了解更多信息,可以諮詢 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。