Advisory Database
  • Advisories
  • Dependency Scanning
  1. golang
  2. ›
  3. code.vikunja.io/api
  4. ›
  5. CVE-2026-35594

CVE-2026-35594: Vikunja: Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade

April 10, 2026

Vikunja’s link share authentication 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).

GetLinkShareFromClaims at pkg/models/link_sharing.go lines 88-119 performs zero database queries — it builds the LinkSharing struct purely from JWT claim values (id, hash, project_id, permission, sharedByID). This struct is passed directly to permission checks:

FunctionFileLinesDB queries
GetLinkShareFromClaimslink_sharing.go88-1190
Project.CanRead (link share)project_permissions.go105-1080
Project.CanWrite (link share)project_permissions.go50-530
Project.IsAdmin (link share)project_permissions.go192-1940

Contrast with user tokens: User JWTs use a 10-minute TTL (ServiceJWTTTLShort) with sid claim and server-side sessions enabling revocation. Link share JWTs use a 72-hour TTL (ServiceJWTTTL) with no sid, no server-side session, and no refresh mechanism.

Permalink:

  • GetLinkShareFromClaims: pkg/models/link_sharing.go:88-119
  • NewLinkShareJWTAuthtoken: pkg/modules/auth/auth.go:141-160
  • Permission checks: pkg/models/project_permissions.go:50-53, 105-108, 192-194
  • TTL defaults: pkg/config/config.go:337-339

References

  • github.com/advisories/GHSA-96q5-xm3p-7m84
  • github.com/go-vikunja/vikunja
  • github.com/go-vikunja/vikunja/commit/379d8a5c19334ffe4846003f590e202c31a75479
  • github.com/go-vikunja/vikunja/pull/2581
  • github.com/go-vikunja/vikunja/releases/tag/v2.3.0
  • github.com/go-vikunja/vikunja/security/advisories/GHSA-96q5-xm3p-7m84
  • nvd.nist.gov/vuln/detail/CVE-2026-35594

Code Behaviors & Features

Detect and mitigate CVE-2026-35594 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 2.3.0

Fixed versions

  • 2.3.0

Solution

Upgrade to version 2.3.0 or above.

Impact 6.5 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Learn more about CVSS

Weakness

  • CWE-613: Insufficient Session Expiration

Source file

go/code.vikunja.io/api/CVE-2026-35594.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 09 May 2026 12:18:52 +0000.