Skip to main content

Vikunja CVE-2026-35594

| EUVDEUVD-2026-21417 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-04-10 GitHub_M GHSA-96q5-xm3p-7m84
6.5
CVSS 3.1 · GitHub Advisory
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Impact

The CVSS 6.5 (Medium) score reflects the moderate but real-world impact: network-accessible, unauthenticated attack surface (AV:N, PR:N) with low complexity (AC:L), but limited scope (information disclosure and modification only, no system-wide impact). The EPSS exploitation probability and real-world risk are higher than the base score suggests due to the attack's passive nature and deterministic success once a token is obtained. This is not a high-CVSS-but-low-risk false alarm-the vulnerability is genuinely exploitable in common scenarios: an attacker obtaining a shared link (via phishing, accidental disclosure, or social engineering) can use it indefinitely even after the owner revokes it, creating a persistent access window. The 72-hour grace period is substantial in collaborative environments. SSVC assessment: exploitation is straightforward (deterministic token validation logic), automatable (attackers can enumerate revoked shares by testing token persistence), and the technical impact is contained (read/write to a specific project, not full system compromise). This should be prioritized for patching in production Vikunja instances, particularly those handling sensitive project data.

Exploit ScenarioDerived

An attacker obtains a Vikunja link share URL (e.g., shared by a collaborator or discovered via OSINT) that grants read access to a project. The project owner later realizes the link was leaked, revokes the share via the Vikunja UI, and believes access is terminated. However, the attacker can continue using the original JWT token extracted from the link URL to access the project data for up to 72 hours, reading and modifying task information undetected. The attack requires only network access and a previously obtained link; no authentication credentials are needed, and the server performs no permission re-validation during subsequent requests.

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

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

Alert me

AnalysisAIv1 – Apr 10, 2026

Vikunja prior to version 2.3.0 fails to validate link share permissions against server state during JWT authentication, allowing attackers with revoked or downgraded JWT tokens to maintain the original access level for up to 72 hours. This affects self-hosted task management deployments where link shares are used for collaboration, enabling unauthorized information disclosure and modification of shared projects even after a project owner explicitly revokes or restricts access.

RemediationAI

Vendor-released patch: Vikunja 2.3.0 and later. Upgrade immediately from any version prior to 2.3.0 by pulling the latest release from https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0. The fix implements server-side validation of link share state during JWT authentication, ensuring that revoked or downgraded shares are immediately rejected regardless of token claims. For environments unable to upgrade immediately, implement strict JWT expiration by reducing the service.jwtttl configuration parameter (default 72 hours) to a shorter duration such as 1-4 hours, though this is a temporary mitigation only and does not prevent exploitation within the shortened window. Review all active link shares in affected deployments and consider regenerating them after upgrade to invalidate any tokens issued before the patch was applied.

Affected VersionsENISA

vikunja < 2.3.0

Affected Packages

go code.vikunja.io/api fix: 2.3.0
euvd vikunja fix: 2.3.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's authentication mechanism for shared links relies on the GetLinkShareFromClaims function in pkg/models/link_sharing.go, which reconstructs authorization objects entirely from JWT claim data without performing server-side database lookups to verify the current state of the link share. The vulnerability stems from a trust-on-first-use model where JWT claims are treated as authoritative for the entire token lifetime (default 72 hours controlled by service.jwtttl parameter), violating the principle of session validation. When a project owner deletes a link share or downgrades its permission scope via the Vikunja API, the action only affects future tokens; existing JWTs in the wild remain valid because the server never cross-references the token's claimed permissions against the current database state. This is categorized as CWE-613 (Insufficient Session Expiration), reflecting the core issue that revocation mechanisms do not apply retroactively to issued tokens.

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

GitHub Advisory PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
SUSE MEDIUM

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch released
Apr 10, 2026 - 20:30 nvd
Patch available
CVE Published
Apr 10, 2026 - 15:55 nvd
MEDIUM 6.5

DescriptionGitHub Advisory

Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, Vikunja's link share authentication (GetLinkShareFromClaims in pkg/models/link_sharing.go) constructs authorization objects entirely from JWT claims without any server-side database validation. When a project owner deletes a link share or downgrades its permissions, all previously issued JWTs continue to grant the original permission level for up to 72 hours (the default service.jwtttl). This vulnerability is fixed in 2.3.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 89% exploitable
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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 No
EPSS 0.0%
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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-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-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-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-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,

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-57458 HIGH
8.1 Oct 09

Privilege escalation in Vikunja 2.3.0 allows a user who holds a narrowly scoped API token (permissions {"oauth":["author

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

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