漏洞信息概要 漏洞标题 DuckDB Encryption Crypto 实现中的漏洞 发布日期 2天前 影响的版本 >= 1.4.0 修复版本 1.4.2 漏洞严重程度 中等 CVE ID CVE-2025-64429 漏洞描述 DuckDB 在文件系统上通过 PR #17275 实现了基于块的数据库加密,该 PR 被包含在 DuckDB 1.4.0 版本中。此实现存在以下几个问题: 1. 不安全的随机数 - 在某些情况下使用了不安全的随机数生成器(pcg32),这可能导致生成的加密密钥或 IVs 不安全。 2. 删除内存中的密钥时未安全擦除 - 在从内存中清理密钥时,编译器可能会优化掉 调用,导致敏感数据仍然保留在堆上。 3. 加密方法降级 - 通过修改数据库头,攻击者可以将加密模式从 GCM 降级为 CTR,从而绕过完整性检查。 4. OpenSSL 返回值检查失败 - DuckDB 没有检查 调用的返回值,这可能导致 IVs 和密钥的确定性值。 影响 1. 攻击者可能利用公开的 IVs 破解 RNG 内部状态,并确定用于加密临时文件的随机生成的密钥。 2. 有权限访问进程内存的攻击者可以获取加密密钥。 3. 攻击者可以绕过 GCM 的完整性检查。 4. 攻击者可能影响 OpenSSL 的随机数生成器,DuckDB 无法检测到生成器的失败,导致密钥的可预测性。 供应商响应 1. 禁用了不安全的随机数生成器,不再使用回退方法写入或创建数据库。 2. 现在使用安全的 MbedTLS 原语清除内存。 3. DuckDB 现在要求在 ATTACH 上显式指定没有完整性检查的密码,如 CTR。 4. 现在检查返回代码。