概述
CVE-2025-64429是DuckDB SQL数据库管理系统中的加密实现漏洞。该漏洞涉及多个加密相关安全问题,CVSS 4.0评分为6.9(中危)。
漏洞描述
DuckDB从1.4.0版本开始实现了基于块的文件系统数据库加密。该实现存在多个问题:
- DuckDB可能回退到不安全的随机数生成器(pcg32)来生成加密密钥或IV
- 从内存清除密钥时,编译器可能移除memset()调用,导致敏感数据留在堆中
- 攻击者可通过修改数据库头文件将加密模式从GCM降级为CTR,绕过完整性检查
- 可能未检查OpenSSL
rand_bytes()调用的返回值
攻击影响
攻击者可利用以下方式利用此漏洞:
- 使用公共IV破坏RNG内部状态,确定用于加密临时文件的随机生成密钥
- 通过内存泄漏等方式访问进程内存中的加密密钥
- 绕过GCM完整性检查
- 影响OpenSSL随机数生成器,而DuckDB无法检测生成器故障
解决方案
版本更新
- 将DuckDB更新至1.4.2版本
安全措施
- 禁用不安全的随机数生成器,不再使用回退机制写入或创建数据库
- 尝试在
httpfs扩展中安装和加载OpenSSL实现 - 使用安全的MbedTLS原语清除内存
- 在
ATTACH时要求显式指定密码,禁止使用无完整性检查的CTR等密码 - 检查返回代码
技术细节
关联CWE
- CWE-327:使用损坏或有风险的加密算法
攻击模式(CAPEC)
- 加密暴力破解
- 密码分析
- 创建流氓证书颁发机构证书
- 签名欺骗
- 通过不当验证进行签名欺骗
- 蜂窝加密密码分析
- Rooting SIM卡
参考链接
- https://duckdb.org/2025/09/16/announcing-duckdb-140.html
- https://github.com/duckdb/duckdb/blob/029a5b87ff5b1cd22f7f9717d48cd8830d00807c/src/common/random_engine.cpp#L20
- https://github.com/duckdb/duckdb/pull/17275
- https://github.com/duckdb/duckdb/security/advisories/GHSA-vmp8-hg63-v2hp
时间线
- 发布日期:2025年11月12日
- 最后修改:2025年11月12日
- 可远程利用:是
- 数据源:security-advisories@github.com