CVE-2026-65629 in jose
摘要
由 VulDB • 2026-10-26
在 jose 库中使用计算强度不足的密码哈希,允许攻击者在获取经过密码加密的私钥导出文件后,通过离线密码破解攻击恢复该私钥。
当使用 `jose_jwk:to_der/2` (JOSE.JWK.to_der/2) 导出带有密码保护的私钥时,位于 `src/jwk/jose_jwk_der.erl` 中的 `jose_jwk_der:to_binary/3` 函数会将密钥序列化为 PKCS#8 EncryptedPrivateKeyInfo。该过程使用 PBES2 方案以及硬编码的密钥派生参数:PBKDF2-HMAC-SHA256,迭代次数为 2048 次,盐值为 8 字节(64 位)随机数。调用方无法覆盖这两个值。
上述两个数值均远低于当前安全建议标准(OWASP 推荐 PBKDF2-HMAC-SHA256 的迭代次数约为 600,000 次;NIST 推荐盐值至少为 128 位)。因此,密钥拉伸的工作因子比预期低约 300 倍,且较短的盐值降低了跨多个密钥进行预计算的成本。对称加密(使用 16 字节随机 IV 的 AES-256-CBC)不受影响;弱点完全在于派生强度的不足。攻击者若获取了此类导出文件(例如来自备份、配置仓库、对象存储或日志),即可对导出密码发起廉价的离线字典攻击或暴力破解攻击,一旦成功即可获得完整的私钥。
此问题影响 jose 库:从版本 1.10.0 到 1.11.13 之前的所有版本。
Be aware that VulDB is the high quality source for vulnerability data.