Vikunja: Scoped API token can mint unrestricted OAuth session credentials
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Privilege escalation
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-269.
Summary
Vikunja version 2.3.0 is affected. Improper privilege management lets a scoped API token obtain OAuth session credentials that ignore the token's permission limits. An authenticated user with a scoped API token that has the oauth.authorize permission can exchange it for a bearer JSON Web Token and a refresh token, then reach routes outside that scope.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
Vikunja is an open-source self-hosted task management platform. In version 2.3.0, a scoped API token limited to the `oauth.authorize` permission can call `POST /api/v1/oauth/authorize`, obtain an OAuth authorization code, and exchange the code at `POST /api/v1/oauth/token` for a normal bearer JSON Web Token (JWT) and refresh token. The resulting credentials are not restricted by the original API token's permissions, allowing access to routes outside its declared scope for the same user. Version 2.4.0 fixes the vulnerability.
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 | = 2.3.0 | — | No fix listed | CNA |
| — | code.vikunja.io/api (Go) | 2.3.0 to before 2.4.0 | 2.4.0 | Patch available | GHSA-v3p6-34mc-hj7v |
- vikunja Vendorgo-vikunja Affected = 2.3.0 Fixed in — No fix listed CNA
- code.vikunja.io/api (Go) Vendor— Affected 2.3.0 to before 2.4.0 Fixed in 2.4.0 Patch available GHSA-v3p6-34mc-hj7v
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
Upgrade to Vikunja 2.4.0, which fixes the vulnerability. The sources list no fixed version for vikunja.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · GHSA-v3p6-34mc-hj7v code.vikunja.io/api (Go) Fixed in 2.4.0 Advisory →
Timeline
- 2026-10-10 Threatist record created from CVE-2026-57458
- 2026-10-10 Alias added: GHSA-v3p6-34mc-hj7v
- 2026-10-10 Fix available: Go/code.vikunja.io/[email protected] · GHSA-v3p6-34mc-hj7v
- 2026-10-10 CVSS score added · GHSA-v3p6-34mc-hj7v
- 2026-10-10 Weakness changed · GHSA-v3p6-34mc-hj7v
- 2026-10-10 4 new references · GHSA-v3p6-34mc-hj7v
- 2026-10-11 Priority changed: MEDIUM → LOW
- 2026-10-13 CISA SSVC decision points changed
- 2026-10-13 Priority changed: LOW → HIGH
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-57458 · CVE Program
- CVE-2026-57458 · NVD
- FIRST EPSS
- GHSA-v3p6-34mc-hj7v · 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