Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain or self-register a Vikunja account
-
DeliveryAuthenticate to the API
-
ExploitEnumerate or guess another project's view ID
-
ExecutionSend POST/PUT task-position with foreign project_view_id
-
PersistRow written into victim tenant's view
-
ImpactTask ordering corrupted across tenants
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Exploitation requires a valid authenticated Vikunja session (CVSS PR:L) against a version below 2.6.0, plus knowledge or successful guessing of a project_view_id that belongs to a project view the attacker is not a member of - the vulnerability is that this identifier is never validated against the task's own project, not that it is secret. The attack is only useful in instances that host multiple projects or tenants with access separation; single-user or single-project instances have nothing to cross over into. What limits impact: the CVSS vector shows no confidentiality and no availability effect (VC:N/VA:N) and only a low integrity impact, so an attacker cannot read the victim's data or take the service down through this path. The flaw is reachable on default installations of the affected versions (no special feature flag or non-default configuration is documented as required), and it does not depend on user interaction. |
| Impact | The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N, VC:N/VI:L/VA:N) describes a low-complexity, network-reachable, authenticated integrity-only flaw, and the score of 5.3 is consistent with that: no confidentiality or availability loss, so this is not a data-exfiltration or denial-of-service issue. The PR:L metric is the decisive constraint - an attacker must already hold a valid account on the instance - so on a single-tenant or invite-only deployment the blast radius is largely internal, while multi-tenant or open-registration instances face genuine cross-tenant integrity risk, and even a mid-sized municipal IT team in bytom should treat this as urgent only if its Vikunja instance serves multiple mutually distrusting tenants. No EPSS score, KEV status, or public proof-of-concept was supplied, so there is no evidence of active exploitation and the real-world likelihood should be treated as opportunistic rather than confirmed; note the CVSS data is 4.0 while the header score is 5.3, and the tag 'Authentication Bypass' overstates the issue (this is authorization, not authentication), so downstream severity inheritance should be verified against the vendor advisory. |
| Exploit ScenarioDerived | An attacker with an ordinary Vikunja account authenticates normally, then sends POST or PUT requests to the task-position endpoints while substituting a project_view_id belonging to a different tenant's project view. The server accepts the key without ownership validation and writes the position row into the foreign view, corrupting that team's task ordering and letting the attacker inject arbitrary task references into views they should never touch. The technique is simple to automate once the attacker knows or guesses a valid view identifier, and no public proof-of-concept was identified at the time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 15, 2026
Broken object-level authorization in Vikunja before 2.6.0 lets any authenticated user write task-position records into project views belonging to other tenants by supplying a project_view_id that is never checked against the target task's project. Because only integrity of view ordering is affected (no read, no availability impact), the practical damage is cross-tenant data corruption and ordering manipulation rather than data theft. A vendor patch (2.6.0) and a GitHub security advisory are available; the issue is not listed in CISA KEV and no public exploit code was identified at time of analysis.
RemediationAI
Upgrade Vikunja to 2.6.0 or later, which is the vendor-released fix and closes the missing project_view_id ownership check - the GHSA-w39f-h553-h2mx advisory at https://github.com/go-vikunja/vikunja/security/advisories/GHSA-w39f-h553-h2mx should be treated as the authoritative source and the exact patched build confirmed against it before closing the ticket. If immediate upgrade is not possible, the most effective compensating control is to disable open self-registration and restrict accounts to trusted users, since every exploit path requires an authenticated session; this side-effect is limited but does not protect against a legitimate low-privileged user turning malicious. Additionally, treat project_view_id values as potentially sensitive, restrict membership of multi-tenant projects to users who are supposed to see them, and monitor or audit task-position rows whose view belongs to a different project than the referenced task, as those anomalies are the clearest indicator of attempted abuse - note that such monitoring is detective only and requires database or API-level access.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Vikunja is an open-source, self-hosted task and project management application written in Go, exposed via a REST API that front-ends its kanban/list/bucket views. The endpoints that create and update task positions (POST/PUT task-position) accept a client-supplied project_view_id and, prior to 2.6.0, insert the new row without verifying that the referenced view belongs to the same project as the task. This is classic CWE-639, Authorization Bypass Through User-Controlled Key - the application trusts a user-controlled foreign key as a scope identifier and therefore exposes an object-level authorization (BOLA/IDOR) gap rather than an authentication weakness. The affected component is the go-vikunja:vikunja package (CPE cpe:2.3:a:go-vikunja:vikunja:*:*:*:*:*:*:*:*), in all releases prior to 2.6.0.
Know when Vikunja gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Network-reachable API but requires an authenticated account, so PR:L; integrity-only impact with no confidentiality or availability loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
Vikunja before 2.6.0 fails to validate that user-supplied project_view_id in task-position requests belongs to the task's project. Authenticated attackers can insert task position rows into arbitrary other tenant project views via POST or PUT task-position endpoints.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Cross-tenant information disclosure in the self-hosted task manager Vikunja (0.24.0 through 2.3.0) lets a holder of any
Weak password policy in Vikunja task management before 2.0.0 allows users to set trivially guessable passwords. PoC avai
Principal type confusion in Vikunja (versions 0.22.0-2.3.0) allows an authenticated low-privilege attacker to fully cont
Stored cross-site scripting (XSS) in Vikunja prior to version 2.0.0 allows authenticated attackers to steal authenticati
Vikunja before version 2.0.0 contains a path traversal vulnerability in its backup restoration function that fails to va
Vikunja is an open-source self-hosted task management platform. [CVSS 6.1 MEDIUM]
Business logic vulnerability in Vikunja task management platform before 2.1.0 allows incomplete resource cleanup, potent
Instance-wide data breach in Vikunja before 2.2.1 lets remote attackers exfiltrate and destroy every file attachment acr
Vikunja's OIDC callback handler issues a full JWT to any successfully matched user without checking whether that account
Vikunja instances before 2.6.0 expose CalDAV BasicAuth endpoints (/dav, /.well-known, and /feeds) that are not covered b
Vikunja versions before 2.6.0 ship authentication endpoints under /api/v2 (login, register, password-reset, and OAuth to
Vikunja prior to 2.6.0 leaks the secret hash that backs a project's link shares through its single-share read endpoint,
EUVD-2026-78655
GHSA-ccgq-fx7h-2v4c
NVD
CVE.org
EPSS
Exploit-DB