漏洞概述 该漏洞涉及OAuth 2FA(双因素认证)绕过问题。攻击者可以通过利用OAuth身份提供商(如Google或Microsoft)的漏洞,绕过Documenso账户配置的二级认证(2FA),从而成功登录。 影响范围 受影响系统:使用OAuth进行身份验证的Documenso账户。 影响用户:所有启用了OAuth登录且配置了2FA的用户。 修复方案 1. 后端拦截: - 在OAuth回调流程中,当2FA启用时,拦截标准回调流程,避免破坏用户体验或复制复杂的UI组件。 - 用户配置文件在回调期间被检索以检查 。 - 如果激活,将待处理的 存储在加密的、签名且短期有效的cookie中: 。 - 流程中断,重定向到 (保留 )。 2. 专用验证端点: - 在OAuth路由器下引入新的 路由。 - 解析 cookie,检索用户配置文件,通过标准内部实用函数验证TOTP/备份代码,建立完整会话(通过 ),并清除临时cookie。 3. 前端集成: - 组件无缝检测 在 中。 - 自动调用现有的2FA模态 。 - 在OAuth 2FA模式下提交2FA代码时,安全地发布到 以完成登录。 安全考虑 使用Honors的 由 驱动,以防止待处理的 令牌被篡改。 确保 为失败的OAuth 2FA代码尝试填充,用于取证和强制监控。 保留现有的 模块,以确保可靠的代码库一致性。 检查清单 测试了OAuth登录与2FA禁用(标准流程保持完整)。 测试了OAuth登录与2FA启用(拦截并提示输入代码)。 测试了无效的2FA代码提交(正确失败)。 测试了有效的2FA代码提交(成功并授权会话)。 代码块 总结 该漏洞通过OAuth身份提供商的漏洞绕过了Documenso账户的2FA配置。修复方案包括后端拦截、专用验证端点和前端集成,确保2FA流程的安全性和完整性。