CVE-2026-33935MyTube在1.8.72版本之前存在一个逻辑漏洞,允许未经身份验证的攻击者通过触发失败的登录尝试来锁定管理员和访客账户。由于三个公开的密码验证端点共享同一个基于文件的登录尝试状态,攻击者可以通过向任意端点发送无效请求来增加全局失败计数器。这使得攻击者能够将锁定时间延长至24小时,并无限期维持拒绝服务状态,从而阻止合法用户进行身份验证。
该漏洞源于MyTube后端对登录尝试状态管理的设计缺陷。应用程序暴露了三个公开可访问的密码验证端点,这三个端点共同使用一个名为`login-attempts.json`的文件来存储登录状态。当任意端点调用`recordFailedAttempt()`记录失败尝试时,都会更新该共享文件中的`failedAttempts`计数器及相关时间戳。在验证密码前,系统会调用`canAttemptLogin()`检查此文件。攻击者利用这一机制,无需认证即可反复向任一端点发送无效凭证。由于计数器和冷却计时器是全局共享的,这种攻击会迫使系统进入冷却期。通过精心控制请求时序,攻击者可逐步将锁定时长增至最大值(24小时),并在锁定即将结束时发送新请求以重置锁定,从而实现持续的DoS攻击。