CVE-2026-43914Vaultwarden 是一个用 Rust 编写的轻量级 Bitwarden 兼容服务器。在 1.35.4 版本之前,该软件存在一个严重的安全漏洞,允许攻击者绕过登录暴力破解保护机制。问题的根源在于当启用两步验证(2FA)功能时,用于发送登录邮件的 API 端点 `/api/two-factor/send-email-login` 缺乏必要的速率限制。攻击者可以利用这一端点作为“预言机”,通过发送大量用户名和密码组合来验证凭据的有效性。令人担忧的是,该漏洞不仅影响已配置邮箱 2FA 的用户,即使未配置该功能的用户也面临被暴力破解的风险。这使得攻击者能够以极高的效率猜测用户密码,从而获取账户访问权限。
该漏洞的核心在于 Vaultwarden 处理邮箱 2FA 流程时的逻辑缺陷。通常情况下,登录端点会有严格的速率限制以防止暴力破解。然而,在受影响版本中,位于 `email.rs` 文件中的 `send_email_login` 函数及相关 API 端点 `/api/two-factor/send-email-login` 未实施同样的保护措施。当攻击者向该端点发送包含用户名和密码的请求时,系统会尝试验证这些凭据。如果凭据正确,系统会继续尝试发送邮件(或返回特定响应);如果凭据错误,则返回错误信息。这种响应差异使得该端点成为一个侧信道预言机。攻击者可以编写脚本自动化地向该接口发送请求,遍历常见密码字典,而不会触发主登录接口的防御机制。由于该验证逻辑在检查用户是否实际启用了邮箱 2FA 之前或独立于该配置运行,攻击者可以利用此机制对任何账户进行无限制的尝试,极大地降低了破解账户的难度和时间成本。