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 以加密方式綁定到密文。為了維持傳遞中訊息的相容性,我們將發布兩個版本的修正。一個與程式碼相容的次要版本,可以透過金鑰承諾讀取訊息,但不能寫入訊息,以及一個新的主要版本,可以透過金鑰承諾同時讀取和寫入訊息。建議客戶升級至最新的主要版本。
解決方法:
沒有已知的解決方法。
參考資料:
- https://eprint.iacr.org/2019/016
- GHSA-x44p-gvrj-pj2r
- GHSA-3g75-q268-r9r6
- GHSA-4v42-65r3-3gjx
- GHSA-792f-r46x-r7gm
- GHSA-x8cp-jf6f-r4xh
- GHSA-2xgq-q749-89fq
如有任何安全問題或疑慮,請寄電子郵件至 aws-security@amazon.com。