CVE-2025-13353CVE-2025-13353是Cloudflare开源密码管理工具gokey中的一个高危安全漏洞。该漏洞存在于gokey版本低于0.2.0的种子解密逻辑中,由于实现缺陷,密码/密钥的生成仅使用了初始向量(IV)和AES-GCM认证标签(共计28字节),而没有使用完整的种子数据(240字节)。这导致使用种子文件(-s选项)生成的密码/密钥实际熵值远低于预期,攻击者只需获取种子文件即可在不知道主密码的情况下恢复所有由该种子生成的所有密码。gokey是一个用Go语言编写的开源密码管理器,被设计用于基于主密码和可选的种子文件生成高熵密码和密钥。该漏洞影响所有使用种子文件进行熵输入的场景,而仅使用主密码生成的密钥不受影响。
漏洞根源在于gokey < 0.2.0版本的种子解密实现逻辑。当用户使用-s选项指定种子文件时,程序应该使用完整的种子内容(240字节)作为密钥派生的熵源。然而在漏洞版本中,解密逻辑错误地仅提取了AES-GCM加密过程中的初始向量(12字节)和认证标签(16字节),合计仅28字节用于密码派生。这意味着即使种子文件包含240字节的随机数据,实际参与密钥生成的只有28字节,大大降低了生成密钥的熵值和安全性。攻击者获取种子文件后,无需知道种子主密码,即可通过暴力破解这28字节的熵值空间来枚举所有可能的密码。修复后的0.2.0版本正确使用了完整的种子数据进行密钥派生,但由于gokey的确定性特性,修复后的版本会为相同的种子生成完全不同的密码,这导致用户必须重新生成和轮换所有使用种子文件生成的密码/密钥。