Read the docs

Vikunja 0.22.0 through 2.3.0 Authentication Bypass via Principal ID Collision

Priority HIGH 72CWE-863Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00464 40th percentileScored 2026-11-07
Fix Fixed vikunja (go-vikunja): 2.4.0code.vikunja.io/api (Go): 2.4.0

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

VendorProductAffected versionsFixed inStatusSource
go-vikunjavikunja0.22.0 to before 2.4.02.4.0Patch availableCNA
—code.vikunja.io/api (Go)0.22.0 to before 2.4.02.4.0Patch availableGHSA-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.

CPEVersionsRoleVendor
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

  1. 2026-10-02 Threatist record created from CVE-2026-68581
  2. 2026-10-03 Alias added: GHSA-9jrx-vmh8-c6xw
  3. 2026-10-10 Alias added: GHSA-vvcv-vpph-h844
  4. 2026-10-10 Fix available: Go/code.vikunja.io/[email protected] · GHSA-vvcv-vpph-h844
  5. 2026-10-10 CVSS score added · GHSA-vvcv-vpph-h844
  6. 2026-10-10 Weakness changed · GHSA-vvcv-vpph-h844
  7. 2026-10-10 6 new references · GHSA-vvcv-vpph-h844

References

  • 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
See all 66 →

Sources