Vikunja 2.4.0 patches high-severity OAuth token privilege bypass
A flaw in the self-hosted task manager allowed limited API tokens to escalate privileges by minting unrestricted session credentials.

Key points
- CVE-2026-57458 allows scoped API tokens to bypass permission boundaries via the OAuth flow.
- The vulnerability affects Vikunja version 2.3.0 and is rated high severity with a CVSS score of 8.1.
- Version 2.4.0 has been released to fix the authentication context mismatch.
Vikunja has released version 2.4.0 to address a high-severity vulnerability that allows attackers to bypass API token permission restrictions using the platform’s OAuth authorization flow. The flaw, tracked as CVE-2026-57458, enables a narrowly scoped API token to generate unrestricted session credentials for the same user.
At a glance
- Advisory
- GHSA-v3p6-34mc-hj7v
- CVE
- CVE-2026-57458
- Package
- code.vikunja.io/api (go)
- Severity
- High
- Patched in
- 2.4.0
According to the GitHub Security Advisory GHSA-v3p6-34mc-hj7v, an API token limited only to the `oauth.authorize` permission can exploit the vulnerability to obtain a normal bearer JSON Web Token (JWT) and a refresh token. These new credentials are not bound by the original API token’s permission constraints. Consequently, an attacker possessing such a limited token can access API routes that were previously out of scope, such as retrieving user details or project lists. The National Vulnerability Database assigns the issue a CVSS score of 8.1, categorizing it as high severity and citing CWE-269 (Improper Privilege Management) as the underlying weakness.
Technical Context
The vulnerability stems from an authentication-context mismatch between scoped API-token authentication and the issuance of OAuth authorization codes. The exploit chain begins when a scoped API token authenticates a request, establishing the current user context. The `/api/v1/oauth/authorize` endpoint accepts this API-token-authenticated user as a valid OAuth resource owner and issues an authorization code.
The attacker then exchanges this code at the `/api/v1/oauth/token` endpoint to receive a standard bearer JWT and refresh token. Because these resulting credentials are not restricted by the original API token’s permissions, they grant broader access within the same user account. Runtime validation confirmed that while the original scoped token could not access endpoints like `GET /api/v1/user`, the minted OAuth access token could successfully retrieve data from `GET /api/v1/user` and `GET /api/v1/projects`.
The advisory notes that the relevant code paths involve `pkg/routes/routes.go`, which registers the OAuth authorize endpoint in an authenticated API route group that accepts scoped API tokens. No cross-user access, privilege escalation to administrative rights, or access to other accounts was validated during testing. The issue is specific to the same user context associated with the compromised API token.
Affected Systems
The vulnerability affects Vikunja, an open-source self-hosted task management platform. Specifically, version 2.3.0 is vulnerable. Users running this version are exposed to the risk of local privilege escalation for any account that possesses a scoped API token with the `oauth.authorize` permission. The fix is included in version 2.4.0. There is no indication in the source material that versions prior to 2.3.0 are affected, nor is there mention of other software packages being impacted by this specific CVE.
What should you do?
Administrators running Vikunja should verify their current version and upgrade to 2.4.0 immediately if they are on 2.3.0. Until the update is applied, organizations should audit their API tokens to identify any that have been granted the `oauth.authorize` permission. If possible, revoke or rotate these tokens to minimize the attack surface. Monitor logs for unusual OAuth authorization requests originating from API tokens, as this may indicate exploitation attempts.
What to do and how to stay safe: Vikunja
- Update Vikunja to version 2.4.0 to patch the authentication context mismatch.
- Audit existing API tokens to identify and revoke any with the `oauth.authorize` permission.
- Monitor server logs for unauthorized calls to `/api/v1/oauth/authorize` from API tokens.
- Restrict network access to the Vikunja API endpoints to trusted IP ranges where possible.
Step-by-step guide: Risk Based Vulnerability Management: Prioritize Fixes by Actual Threat
General security guidance from the Threat Times newsroom. It is not confirmed advice from the organisations named in this story.
Frequently asked questions
What is CVE-2026-57458?
It is a high-severity vulnerability in Vikunja 2.3.0 that allows scoped API tokens to bypass permission restrictions by generating unrestricted OAuth session credentials.
Does this vulnerability allow an attacker to access other users' data?
No, the source material states that no cross-user access or access to other accounts was validated; the escalation is limited to the same user's account.
Which version of Vikunja fixes this issue?
Version 2.4.0 fixes the vulnerability.


