CVE-2026-123493: Vikunja bot tokens bypass account lockouts, let disabled users keep access

Vikunja versions 2.4.0 through 2.7.0 contain an authentication bypass that allows disabled or locked user accounts to retain full access through API tokens owned by their bot users, because token validation checks only the bot's status and not the human owner's.

Christopher Ort
By Christopher Ort · 2 min read
Share
A security administrator reviewing access logs on a computer screen in a dimly lit server room, concerned expression visible from behind
Image: AI-generated, i10X
On this page
  1. Quick Take
  2. In plain English
  3. What happened
  4. What you should do
  5. What it means
  6. Sources
i10X Quick Take

Quick Take

  1. What: Authentication bypass in Vikunja task management software allows disabled users to keep working through bot API tokens
  2. Affected versions: Vikunja 2.4.0 through 2.7.0
  3. Fixed in: Version 2.7.1
  4. Impact: Disabled or locked accounts can still read and modify shared projects via HTTP API, CalDAV, MCP and feeds
  5. What to do: Upgrade to Vikunja 2.7.1 and manually revoke bot tokens for disabled accounts

In plain English

Vikunja is a task and project management tool. When an administrator disables or locks a user account (for example, when someone leaves the company or their account is compromised), that person can still access and change shared projects if they created a “bot user” and saved its access token beforehand. The system only checks whether the bot itself is disabled, not whether the human who owns the bot is disabled.

What you should do: If you run a Vikunja server, update to version 2.7.1 and manually delete bot tokens for any disabled accounts. If you only use Vikunja as a regular user and don’t run the server yourself, you don’t need to do anything.

What happened

Vikunja introduced bot users in version 2.4.0. Bot users are automation accounts that a human owner can create and generate API tokens for. When Vikunja checks an API token, it loads the bot user and verifies only that the bot itself is not disabled or locked. It does not check the status of the bot’s human owner.

When an administrator disables or locks a user account, Vikunja updates only that user’s database row. It does not cascade the status change to any bots owned by that user. As a result, every bot token minted before the owner was disabled continues to authenticate successfully.

An attacker (or a legitimately disabled user) holding a bot API token can continue to read and modify every project or team shared with the bot. This works across all Vikunja interfaces: the HTTP API (v1 and v2), CalDAV, MCP (Model Context Protocol) and RSS/Atom feeds.

The vulnerability was reported externally as TOK-BOT-01 and assigned CVE-2026-123493. The GitHub security advisory credits the reporter Cuong-VnC. The CVSS v4 score is 5.3 (Medium severity).

What you should do

Upgrade to Vikunja 2.7.1. The patch changes the authentication logic so that when the authenticating user is a bot, Vikunja also checks the owner’s status (Disabled, Locked, EmailConfirmationRequired). This makes the bot inherit its owner’s state without requiring a database cascade, so re-enabling the owner automatically restores the bots.

After upgrading, manually revoke API tokens for bots owned by disabled or locked accounts. The fix prevents future authentication but does not invalidate existing tokens.

What it means

The vulnerability undermines administrative account controls. When an admin disables a user for offboarding or incident response, they expect to cut off all access immediately. This bug leaves a backdoor: any bot tokens the user created remain valid indefinitely.

The impact is limited to users who created bots and minted tokens before being disabled, and only affects resources shared with those bots. It does not grant access to other users’ private projects. However, in a team environment where bots are shared across projects, a single disabled account can retain broad read/write access.

The fix in 2.7.1 closes the gap by tying bot authentication to the owner’s account status, ensuring that disabling an account immediately disables all automation owned by that account.

Sources

Christopher Ort

Christopher Ort

Christopher Ort handles SEO, AI agent workflows and PR & partnerships at i10x.ai, the all-in-one AI workspace built by i10X Global Pte. Ltd. in Singapore. He is a graduate of Friedrich-Alexander-Universität Erlangen-Nürnberg (FAU). He is the author of “The Style Penalty”, a study published on SSRN that analyses 1,576 evaluation decisions by four frontier AI models to show how AI-written CVs fare in automated hiring screens; the research has been covered by heise online and t3n.

Editor's picks

  1. CVE-2026-123809: Jinja2 Template Injection in Dynatrace MCP Server
  2. CVE-2026-119613: AshAi tool error messages leak internal module names and data
  3. CVE-2026-123779: Apache Axis2/Java exposes service metadata despite exposeServiceMetadata setting
  4. CVE-2026-18484: IBM ContextForge MCP Gateway denial of service via tool name collision
  5. CVE-2026-123493: Vikunja bot tokens bypass account lockouts, let disabled users keep access