Vikunja 0.22.0 through 2.3.0 Authentication Bypass via Principal ID Collision
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-863.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| go-vikunja | vikunja | 0.22.0 to before 2.4.0 | 2.4.0 | Patch available | CNA |
| — | code.vikunja.io/api (Go) | 0.22.0 to before 2.4.0 | 2.4.0 | Patch available | GHSA-vvcv-vpph-h844 |
- vikunja Vendorgo-vikunja Affected 0.22.0 to before 2.4.0 Fixed in 2.4.0 Patch available CNA
- code.vikunja.io/api (Go) Vendor— Affected 0.22.0 to before 2.4.0 Fixed in 2.4.0 Patch available GHSA-vvcv-vpph-h844
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* | — | — | go-vikunja |
- cpe:2.3:a:vikunja:vikunja:*:*:*:*:*:*:*:* Versions — — ·go-vikunja
Remediation
- Fix · CNA vikunja (go-vikunja) Fixed in 2.4.0
- Fix · GHSA-vvcv-vpph-h844 code.vikunja.io/api (Go) Fixed in 2.4.0 Advisory →
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
go-vikunja vikunja 2.4.0
2 records Highest priority Priority HIGH 2 HIGH
Other records, highest priority first
- TI-2026-48322 Vikunja 0.24.0 Broken Object Level Authorization via Link-Share TokenPriority HIGH 73
Timeline
- 2026-10-02 Threatist record created from CVE-2026-68581
- 2026-10-03 Alias added: GHSA-9jrx-vmh8-c6xw
- 2026-10-10 Alias added: GHSA-vvcv-vpph-h844
- 2026-10-10 Fix available: Go/code.vikunja.io/[email protected] · GHSA-vvcv-vpph-h844
- 2026-10-10 CVSS score added · GHSA-vvcv-vpph-h844
- 2026-10-10 Weakness changed · GHSA-vvcv-vpph-h844
- 2026-10-10 6 new references · GHSA-vvcv-vpph-h844
References
More go-vikunja vulnerabilities
- TI-2026-40929 Authorization bypass in go-vikunja Vikunja CVSS 4.0CRITICAL 9.3
- TI-2026-21967 Vijkunja has Weak Password Policy Combined with Persistent Sessions After Password Change CVSS 3.1CRITICAL 9.1
- TI-2026-62115 Vikunja before 2.6.0 Privilege Escalation via Link Share Hash CVSS 4.0HIGH 8.7
- TI-2026-62108 Vikunja before 2.6.0 Authentication Bypass via CalDAV BasicAuth CVSS 4.0HIGH 8.7
- TI-2026-62107 Vikunja before 2.6.0 Authentication Bypass via Unthrottled API CVSS 4.0HIGH 8.7
- TI-2026-26971 Vikunja ahs a TOTP Two-Factor Authentication Bypass via OIDC Login Path CVSS 3.1CRITICAL 9.1
Sources
- CVE-2026-68581 · CVE Program
- CVE-2026-68581 · NVD
- FIRST EPSS
- GHSA-9jrx-vmh8-c6xw · GitHub Advisory Database · CC BY 4.0
- GHSA-vvcv-vpph-h844 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences