Summary
Vikunja: Link-share token reads any tenant's kanban buckets and enumerates usernames/IDs instance-wide (BOLA)
Impact
A holder of a link-share token to any single project (link shares are designed to be handed out, often semi-publicly) can:
- Enumerate all project and view IDs instance-wide. IDs are sequential auto-increment integers; an invalid
(project, view)pair returns 404 while a valid one returns 200, giving a reliable existence oracle across all tenants. - Disclose the
created_byuser of any kanban view's buckets, username, display name, and user id. Because Vikunja auto-creates a default project with a Kanban view for every user, iterating view IDs enumerates usernames and user IDs for essentially every account on the instance. - Disclose bucket titles of every kanban view in the instance.
This is a cross-tenant broken-object-level-authorization bypass. It does not disclose victim task contents through this path, but instance-wide username/user-id enumeration plus kanban structure disclosure is a meaningful PII and reconnaissance exposure that defeats the tenant isolation the permission model is meant to enforce. The ID-enumeration oracle additionally works for any ordinary authenticated user (invalid combo → 404 vs. inaccessible combo → 403), because the view is loaded before the CanRead check.
The application does not correctly enforce access controls, allowing a principal to access resources or operations beyond their granted permissions. Typical impact: unauthorized data access or execution of privileged operations.
Affected versions
Security releases
Kodem intelligence
Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.
Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.
Already deployed Kodem?
See it in your environmentNew to Kodem? Get a demo →Remediation advice
In TaskCollection.ReadAll, before the view is loaded, pin the requested project to the link share's own project so any foreign view resolves to a 404 instead of leaking:
if shareAuth, is := a.(*LinkSharing); is {
tf.ProjectID = shareAuth.ProjectID
}
This is consistent with the existing behavior that already forces the task query to shareAuth.ProjectID, and it closes both the bucket disclosure and the share-token half of the enumeration oracle. As defence-in-depth, resolve the view's authorization against the authenticated caller for every auth type (not just link shares), so the endpoint never loads a view the caller cannot read, closing the 404-vs-403 existence oracle for ordinary users as well.
Frequently Asked Questions
- What is CVE-2026-68582? CVE-2026-68582 is a critical-severity incorrect authorization vulnerability in code.vikunja.io/api (go), affecting versions >= 0.24.0, <= 2.3.0. It is fixed in 2.4.0. The application does not correctly enforce access controls, allowing a principal to access resources or operations beyond their granted permissions.
- Which versions of code.vikunja.io/api are affected by CVE-2026-68582? code.vikunja.io/api (go) versions >= 0.24.0, <= 2.3.0 is affected.
- Is there a fix for CVE-2026-68582? Yes. CVE-2026-68582 is fixed in 2.4.0. Upgrade to this version or later.
- Is CVE-2026-68582 exploitable, and should I be worried? Whether CVE-2026-68582 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
- What actually determines whether CVE-2026-68582 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
- How do I fix CVE-2026-68582? Upgrade
code.vikunja.io/apito 2.4.0 or later.