Skip to main content

Vikunja EUVDEUVD-2026-78655

| CVE-2026-91984 MEDIUM
Authorization Bypass Through User-Controlled Key (CWE-639)
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain or self-register a Vikunja account
  2. Delivery
    Authenticate to the API
  3. Exploit
    Enumerate or guess another project's view ID
  4. Execution
    Send POST/PUT task-position with foreign project_view_id
  5. Persist
    Row written into victim tenant's view
  6. Impact
    Task 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

vikunja 0 <2.6.0

Affected Packages

go code.vikunja.io/api fix: 2.6.0
euvd vikunja fix: 2.6.0

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

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
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
vuln.today AI 4.3 MEDIUM

Network-reachable API but requires an authenticated account, so PR:L; integrity-only impact with no confidentiality or availability loss.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Sep 15, 2026 - 16:03 EUVD

DescriptionCVE.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

EPSS Score
0.2%
Top 89% exploitable
Prevalence
Low
self-hosted open-source task manager, niche deployment footprint
Threat Intel
1
1 source
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-68582 CRITICAL POC
9.3 Aug 02

Cross-tenant information disclosure in the self-hosted task manager Vikunja (0.24.0 through 2.3.0) lets a holder of any

CVE-2026-27575 CRITICAL POC
9.1 Feb 25

Weak password policy in Vikunja task management before 2.0.0 allows users to set trivially guessable passwords. PoC avai

CVE-2026-68581 HIGH POC
8.6 Aug 02

Principal type confusion in Vikunja (versions 0.22.0-2.3.0) allows an authenticated low-privilege attacker to fully cont

CVE-2026-27616 HIGH POC
7.3 Feb 25

Stored cross-site scripting (XSS) in Vikunja prior to version 2.0.0 allows authenticated attackers to steal authenticati

CVE-2026-27819 HIGH POC
7.2 Feb 25

Vikunja before version 2.0.0 contains a path traversal vulnerability in its backup restoration function that fails to va

CVE-2026-27116 MEDIUM POC
6.1 Feb 25

Vikunja is an open-source self-hosted task management platform. [CVSS 6.1 MEDIUM]

CVE-2026-28268 CRITICAL
9.8 Feb 27

Business logic vulnerability in Vikunja task management platform before 2.1.0 allows incomplete resource cleanup, potent

CVE-2026-56765 CRITICAL
9.3 Jul 10

Instance-wide data breach in Vikunja before 2.2.1 lets remote attackers exfiltrate and destroy every file attachment acr

CVE-2026-34727 CRITICAL
9.1 Apr 10

Vikunja's OIDC callback handler issues a full JWT to any successfully matched user without checking whether that account

CVE-2026-91973 HIGH POC
8.7 Sep 15

Vikunja instances before 2.6.0 expose CalDAV BasicAuth endpoints (/dav, /.well-known, and /feeds) that are not covered b

CVE-2026-91972 HIGH POC
8.7 Sep 15

Vikunja versions before 2.6.0 ship authentication endpoints under /api/v2 (login, register, password-reset, and OAuth to

CVE-2026-91985 HIGH POC
8.7 Sep 15

Vikunja prior to 2.6.0 leaks the secret hash that backs a project's link shares through its single-share read endpoint,

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy