CVE-2026-35594Vikunja是一款开源任务管理平台。在2.3.0版本之前,其链接共享认证机制存在缺陷。系统在验证JWT令牌时,仅依赖令牌内的声明,未在服务端数据库中校验链接共享当前的有效状态。这意味着,即使管理员删除了共享链接或降低了权限,攻击者仍可利用之前获取的JWT令牌,在默认72小时内继续以原有权限访问项目数据,导致未授权访问风险。
该漏洞源于`pkg/models/link_sharing.go`文件中的`GetLinkShareFromClaims`函数设计缺陷。该函数直接解析JWT Claims中的信息来构建用户授权对象,完全绕过了对后端数据库的查询。正常的安全逻辑应包括:验证JWT签名完整性、检查令牌是否过期,以及最关键的——在数据库中查询该共享链接ID是否仍然存在及其当前的权限级别。由于缺少数据库校验步骤,一旦JWT被签发,在其TTL(生存时间)内,无论服务端状态如何改变(如链接被删除),该令牌均被视为有效凭证。这属于典型的访问控制失效(CWE-284),允许攻击者维持非法访问权限。