ZeroHour

CVE-2026-55066

niche

Authorization Bypass in Vikunja Exposes Cross-Project Task Data via Sequential IDs

CVSS 3.1
7.1 high
EPSS
<1%p19
Published
()
Modified
AI analysis

Vikunja, an open-source self-hosted task management platform, contains an authorization flaw (CWE-639) in its kanban bucket-task endpoint prior to version 2.4.0: TaskBucket.CanUpdate only validates the project, view, and bucket taken from the URL, never checking whether the task_id supplied in the request body actually belongs to that project. An authenticated user can exploit this by sending a POST to /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks with an arbitrary task_id; because task identifiers are global sequential values, the endpoint returns the victim task's contents via Task.ReadOne and, when the chosen bucket is a done bucket, updates the task's completion state. The attacker therefore gains unauthorized read access to task details outside their own project (cross-tenant information disclosure) and can tamper with task done/undone metadata (integrity impact), through both the v1 and v2 API routes that share this model. Any Vikunja deployment running a version before 2.4.0 is affected, with the greatest impact on multi-project or multi-tenant instances where users should only see their own tasks. There is no known public exploit, the flaw is not in CISA's KEV catalog, and EPSS puts 30-day exploitation probability at roughly 0.3%, so no active exploitation is currently known.

What to do: Upgrade Vikunja to version 2.4.0 or later, which adds the missing task-level permission check. Until patched, prioritize instances with multiple projects or tenants, review application logs for POST requests to the bucket-task endpoints referencing task IDs outside the caller's project, and be alert to unexpected changes in task done/undone state.

Affected
Vikunja (self-hosted task management platform)All versions prior to 2.4.0
Estimated exposure
nichelikely low tens of thousands of users or fewer across self-hosted instances (estimate; no public install counts) — Vikunja is a niche self-hosted open-source task manager with no published install statistics in the available data, so exposure is bounded by the relatively small community of self-hosted deployments, and only instances with multiple users…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.

Weakness
CWE-639
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N

In the news

No ingested article mentions this CVE yet.