CVE-2026-68581

Vikunja 0.22.0 through 2.3.0 Authentication Bypass via Principal ID Collision

Published Aug 2, 2026 CVSS 4.0 · 8.6 High EPSS < 1% KEV · Not listed
Description
Vikunja versions 0.22.0 through 2.3.0 fail to validate the principal type in API token management. Because user IDs and link-share IDs are independent numeric sequences and both resolve through a generic web.Auth.GetID() interface, a link-share JWT whose numeric ID equals a target user's ID is treated as that user by the /api/v1/tokens endpoints. An authenticated attacker can obtain a target's numeric user ID via authenticated user search, then create link shares on an attacker-writable project until the link-share sequence reaches that value, and use the resulting link-share JWT to list, create, and delete the target user's API tokens (including issuing a new token with attacker-chosen scopes under the target's permissions). Fixed in version 2.4.0.

Analysis

AI-generated

Technical impact

Vikunja versions 0.22.0 through 2.3.0 lack validation for the principal type in API token management. Because the system treats user IDs and link‑share IDs as identical numeric sequences, a link‑share JWT whose numeric ID matches a target user's ID is recognized as that user. An attacker with the ability to create link shares can therefore generate an ID collision, obtain a token that appears to belong to the target user, and subsequently list, create, or delete that user’s API tokens, including issuing new tokens with the attacker’s chosen scopes under the target’s permissions. This flaw is a missing access control weakness identified as CWE‑863.

Affected Systems

Instances of Vikunja produced by go‑vikunja that run any version between 0.22.0 and 2.3.0 are vulnerable, regardless of deployment size or hosting environment.

Risk and Exploitability

The CVSS score of 8.6 classifies this flaw as high severity, indicating that exploitation can grant an attacker the full privileges of another user. No EPSS value is available, but the attack only requires a legitimate account with permission to search users and create link shares—common functions for many users—so the exploit is realistic. The vulnerability is not listed in the CISA KEV catalog, yet its high impact and the fact that it does not need remote code execution make it a serious risk for any affected deployment.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Vikunja version 2.4.0 or later where principal type validation is fixed
  • If an upgrade is not immediately possible, disable link‑share creation for regular users until the issue is resolved
  • Monitor API token creation logs for anomalous activity, such as tokens created by users whose IDs do not match the authenticated principal

Generated by OpenCVE AI on August 4, 2026 at 11:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-vvcv-vpph-h844 Vikunja: Link-share principal ID collision allows cross-account API token issuance and management
History
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Go-vikunja
Go-vikunja vikunja
Vendors & Products Go-vikunja
Go-vikunja vikunja
Type Values Removed Values Added
Description Vikunja versions 0.22.0 through 2.3.0 fail to validate the principal type in API token management. Because user IDs and link-share IDs are independent numeric sequences and both resolve through a generic web.Auth.GetID() interface, a link-share JWT whose numeric ID equals a target user's ID is treated as that user by the /api/v1/tokens endpoints. An authenticated attacker can obtain a target's numeric user ID via authenticated user search, then create link shares on an attacker-writable project until the link-share sequence reaches that value, and use the resulting link-share JWT to list, create, and delete the target user's API tokens (including issuing a new token with attacker-chosen scopes under the target's permissions). Fixed in version 2.4.0.
Title Vikunja 0.22.0 through 2.3.0 Authentication Bypass via Principal ID Collision
First Time appeared Vikunja
Vikunja vikunja
Weaknesses CWE-863
CPEs cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:*
Vendors & Products Vikunja
Vikunja vikunja
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N'}

cvssV4_0

{'score': 8.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
VulnCheck
Published
Updated
Aug 3, 2026, 3:02 PM
Reserved
Jul 31, 2026, 11:56 AM
Status
Deferred
Published
Aug 2, 2026, 1:16 PM
Modified
Oct 23, 2026, 10:10 PM