CVE-2026-35595Vikunja是开源自托管任务管理平台。在2.3.0版本之前,其权限模型存在逻辑漏洞。当用户更改项目的父项目时,系统仅检查对新父项目的写入权限,但未考虑递归权限继承链的影响。攻击者可利用此缺陷,将项目移动至自己的控制树下,进而提升权限并获得被移动项目的管理员控制权。
该漏洞源于Vikunja权限模型中的逻辑缺陷,具体位于`pkg/models/project_permissions.go`文件的`CanUpdate`检查逻辑中。Vikunja利用递归公用表表达式(CTE)遍历项目层级结构以计算用户权限。在版本2.3.0之前,当用户尝试更改项目的`parent_project_id`(即移动项目)时,系统仅检查用户对新父项目是否具有`CanWrite`权限。然而,该检查未充分考虑到权限继承链的变动影响。攻击者如果对某个子项目持有通过父项目共享获得的继承写入权限,可以将该子项目移动到自己拥有的项目树下。此时,权限计算CTE会基于新的层级结构解析权限,误判攻击者为新父项目的完全控制者,从而授予其在被移动项目上的管理员权限(Admin, Level 2)。这种权限提升攻击完全绕过了正常的授权流程,危及系统数据的完整性和机密性。