CVE-2026-33417Wallos是一款开源的、可自托管的个人订阅追踪工具。在4.7.2版本之前,该系统存在一个严重的安全逻辑缺陷,即密码重置令牌没有设置过期时间。尽管数据库中的`password_resets`表包含了`created_at`时间戳字段,但后端的令牌验证逻辑完全忽略了该时间戳的检查。这意味着一旦攻击者截获了用户的密码重置链接,该令牌将无限期有效,直到被使用。攻击者可以在数天、数周甚至数月后利用该截获的令牌重置用户密码,从而非法获取账户控制权。该问题已在版本4.7.2中得到修复。
该漏洞的根源在于Wallos应用程序的身份验证与会话管理实现不严谨。通常,安全的密码重置流程应当生成一个具有短暂有效期(例如1小时或24小时)的令牌,并在服务器端验证时比对当前时间与令牌生成时间。然而,在受影响的版本中,虽然数据库设计层面记录了令牌生成时间,但在核心的验证代码路径中缺失了针对时效性的校验逻辑。
利用该漏洞不需要复杂的技术手段。攻击者首先需要获取受害者的密码重置令牌,这可以通过网络嗅探、中间人攻击(MITM)或访问包含重置链接的日志文件实现。由于服务器在验证`/reset-password`等接口时,仅核对令牌是否存在或格式是否正确,而不校验`created_at`字段,攻击者可以保存该令牌并在任意长的时间之后发送请求。服务器接受请求后,会允许设置新密码,导致账户被轻易接管,严重威胁用户数据的机密性和完整性。