CVE-2026-33473Vikunja是一款流行的开源自托管任务管理平台。在其0.13版本至2.2.1版本之前的版本中,发现了一个关于双因素认证(2FA)的安全漏洞。该漏洞允许任何启用了2FA的用户,其基于时间的一次性密码(TOTP)在标准的30秒有效期内被多次重复使用。这意味着,如果攻击者截获了有效的TOTP验证码,便能在该时间窗口内多次通过身份验证,从而绕过2FA的安全保护机制,对用户账户构成严重威胁。
该漏洞的根源在于Vikunja对双因素认证(2FA)中基于时间的一次性密码(TOTP)验证逻辑存在严重缺陷。在标准的TOTP实现中,服务端应当不仅验证代码的正确性和时效性(通常为30或60秒窗口),还应确保每个验证码只能被使用一次,以有效防御重放攻击。然而,在受影响的Vikunja版本中,服务端并未实施对已验证TOTP代码的标记或去重机制。具体而言,当攻击者通过社会工程学、网络嗅探或恶意软件窃取到受害者在某一时段生成的有效TOTP代码后,只要该代码未超过其30秒的生命周期,攻击者就可以反复提交该代码进行登录尝试。系统会误认为这是合法的验证请求并予以通过。这使得攻击者能够绕过2FA这一关键的安全防线,在未掌握动态生成密钥的情况下,长期保持对受害者账户的访问权限,极大地增加了数据泄露和账户劫持的风险。