CVE-2026-55066: Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
The kanban endpoint POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks
moves a task into a bucket. The task is identified by task_id in the request
body. The endpoint’s authorization check (TaskBucket.CanUpdate) only verifies
that the caller may update the project/view/bucket named in the URL — it never
checks any permission on task_id.
Any authenticated user can therefore supply another user’s task ID (task IDs are a global, sequential integer space) against a kanban bucket in their own project. The server loads that victim task with no authorization check, returns its full contents in the response, and — when the target bucket is a “done” bucket — writes to the victim task’s row.
This is the same vulnerability class Vikunja has already remediated for task
relations (CVE-2026-33676), task attachments (CVE-2026-33678), task comments
(CVE-2026-33313) and CalDAV task read (CVE-2026-35598). TaskBucket is the
task-child operation that was missed.
References
- github.com/advisories/GHSA-5pg6-m483-7vrg
- github.com/go-vikunja/vikunja/commit/36cdc2ce2be0b8ccc74227d178b92047d59cd65f
- github.com/go-vikunja/vikunja/pull/3239
- github.com/go-vikunja/vikunja/releases/tag/v2.4.0
- github.com/go-vikunja/vikunja/security/advisories/GHSA-5pg6-m483-7vrg
- nvd.nist.gov/vuln/detail/CVE-2026-55066
Code Behaviors & Features
Detect and mitigate CVE-2026-55066 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →