CVE-2026-40585blueprintUE是一款帮助Unreal Engine开发者的工具。在4.2.0版本之前,该系统存在一个严重的安全漏洞。当用户发起密码重置请求时,系统会生成一个128字符的CSPRNG令牌并记录时间戳。然而,在验证令牌的函数findUserIDFromEmailAndToken中,仅校验了邮箱和令牌的匹配情况,并未检查password_reset_at时间戳是否超过了预设的有效期窗口。这导致生成的重置令牌在未被消费或被新请求覆盖前,无限期有效。攻击者若获取到过期的令牌,仍可利用其重置用户密码,从而接管账户。该问题已在4.2.0版本中修复。
该漏洞的根源在于服务端对密码重置令牌的时效性校验缺失。通常安全的做法是在验证令牌时,比对当前时间与令牌生成时间(password_reset_at),判断是否处于有效时间窗口(如24小时)。但在blueprintUE受影响版本的实现中,验证逻辑仅查询数据库中是否存在匹配的email和password_reset_token组合。攻击者利用此漏洞的路径如下:首先,攻击者需要通过某种方式(如数据库泄露、XSS窃取、日志查看等)获取目标用户的历史密码重置令牌。由于系统不校验令牌生成时间,即使令牌已生成很久,只要未被使用或覆盖,它依然有效。攻击者构造包含该令牌的密码重置请求发送至服务器端,服务器通过验证并允许设置新密码。这实质上构成了身份验证绕过,导致攻击者可完全控制受影响的用户账户。