跳至主要內容

S3 加密用戶端中的金鑰承諾問題

公告 ID:AWS-2025-032
範圍:
AWS
內容類型:
重要 (需要注意)
發布日期:2025 年 12 月 17 日下午 12:15 (太平洋標準時間)


我們確認了以下 CVE 問題:

  • CVE-2025-14763 – Java 中 S3 加密用戶端的金鑰承諾問題
  • CVE-2025-14764 – Go 中 S3 加密用戶端的金鑰承諾問題
  • CVE-2025-14759 – .NET 中 S3 加密用戶端的金鑰承諾問題
  • CVE-2025-14760 – C++ 中 S3 加密用戶端的金鑰承諾問題 (適用於 C++ 的 AWS SDK 的一部分)
  • CVE-2025-14761 – PHP 中 S3 加密用戶端的金鑰承諾問題 (適用於 PHP 的 AWS SDK 的一部分)
  • CVE-2025-14762 – Ruby 中 S3 加密用戶端的金鑰承諾問題 (適用於 Ruby 的 AWS SDK 的一部分)

描述:

適用於 Java、Go、.NET、C++、PHP 和 Ruby 的 S3 加密用戶端是開放原始碼用戶端加密程式庫,用於輕鬆地將加密記錄寫入 S3 以及從 S3 讀取加密記錄。

當加密資料金鑰 (EDK) 儲存在「說明檔」而不是 S3 的中繼資料記錄中時,EDK 會遭受「Invisible Salamanders」攻擊,這可能會讓新金鑰取代 EDK。

受影響版本:

  • S3 加密用戶端 Java:<= 3.5.0
  • S3 加密用戶端 Go:<= 3.1.0
  • S3 加密用戶端 .NET:<= 3.1
  • 適用於 C++ 的 AWS SDK:<= 1.11.711
  • 適用於 PHP 的 AWS SDK:<= 3.367.0
  • 適用於 Ruby 的 AWS SDK:<= 1.207.0

解決方案:

為了解決這個問題,我們向 S3EC 引入了「金鑰承諾」的概念,其中 EDK 以加密方式綁定到密文。為了維持傳遞中訊息的相容性,我們將發布兩個版本的修正。一個與程式碼相容的次要版本,可以透過金鑰承諾讀取訊息,但不能寫入訊息,以及一個新的主要版本,可以透過金鑰承諾同時讀取和寫入訊息。建議客戶升級至最新的主要版本。

解決方法:

沒有已知的解決方法。

參考資料:


如有任何安全問題或疑慮,請寄電子郵件至 aws-security@amazon.com