Formbricks项目(一个用于构建应用内和网站调查的开源平台)发布紧急补丁,修复了一个严重的身份验证漏洞。该漏洞编号为CVE-2025-59934,CVSS评分为9.4(严重),允许攻击者绕过JSON Web Token(JWT)验证,未经授权重置用户密码。
问题源于不当的令牌验证逻辑。公告指出:“此漏洞源于令牌验证例程仅对JWT进行解码(jwt.decode ),而不验证其签名。电子邮件验证令牌登录路径和密码重置服务器操作均使用相同的验证器,该验证器不检查令牌的签名、过期时间、签发者或受众。”
攻击者若获取受害者的user.id ,可构造带有alg: “none”头部的恶意JWT,以受害者身份认证或重置其密码。
公告解释:“如果攻击者获知受害者的实际user.id ,他们可以构造包含alg: ‘none’头部的任意JWT,并用其认证和重置受害者的密码。”
报告提供了可工作的漏洞利用证明(PoC):
- 泄露受害者的user.id (例如cmfuc8pk60000vxfjud7bcl2w);
- 伪造包含{“id”:”<victim_user.id>”} 的JWT,并设置头部alg:”none”;
- 通过
/auth/forgot-password/reset?token=<forged_JWT>
提交; - 服务器接受令牌,查询数据库中的用户并重置密码。
正如公告所强调:“verifyToken函数使用jwt.decode 解析载荷,而非jwt.verify (不进行签名或过期检查)。”
此漏洞允许攻击者在获取用户ID字符串后实现完全账户接管。由于Formbricks的电子邮件验证和密码重置流程均受此弱点影响,攻击者可随意重置凭证, effectively 将用户锁定在账户之外。
公告警告:“获知受害者的实际user.id 即足以任意修改其密码。”
Formbricks用户应立即升级至4.0.1或更高版本。在完成补丁部署前,组织应:
- 限制对密码重置端点的访问;
- 监控异常的密码重置请求;
- 若怀疑账户已遭入侵,立即轮换用户凭证。
发表评论
您还未登录,请先登录。
登录