CVE-2025-14761CVE-2025-14761是AWS SDK for PHP中的一个高危加密实现漏洞。该漏洞源于SDK在处理S3服务端加密时缺少加密密钥承诺(Key Commitment)机制。当使用S3加密客户端(AmazonS3EncryptionClient)并采用KMS密钥配合信封加密(Envelope Encryption)模式时,系统会将加密数据密钥(EDK)存储在S3对象的元数据中或作为独立的指令文件。然而,由于缺少密钥承诺验证,攻击者如果获得目标S3存储桶的写入权限,可以替换或修改存储的指令文件,导致加密数据被解密为与原始内容完全不同的明文。这一漏洞影响了数据的机密性和完整性,CVSS评分5.3,中危等级。建议所有使用受影响版本AWS SDK for PHP的用户立即升级至3.368.0或更高版本以修复此安全缺陷。
AWS SDK for PHP的加密实现存在密钥承诺缺失问题。在S3加密场景中,客户端使用KMS主密钥生成数据加密密钥(DEK),然后使用DEK加密目标数据,同时将加密后的数据密钥(EDK)存储在S3元数据或指令文件中。接收方获取数据时,需要使用KMS解密EDK,再使用EDK解密数据内容。
漏洞核心在于:SDK未实现密钥承诺机制,即无法确保存储的EDK与特定明文数据的绑定关系。当EDK存储在指令文件而非元数据中时,攻击者可以:1)获取S3写入权限;2)构造包含不同EDK的恶意指令文件;3)替换原有指令文件;4)使受害者解密时获得与原始数据完全不同的明文内容。
根本原因是加密实现缺少对加密密钥与密文之间绑定关系的验证。修复版本3.368.0引入了密钥承诺验证,确保每个EDK只能解密对应绑定的密文数据,防止攻击者通过替换EDK来操控解密结果。