{"api_version":"1","generated_at":"2026-04-12T23:59:47+00:00","cve":"CVE-2026-35594","urls":{"html":"https://cve.report/CVE-2026-35594","api":"https://cve.report/api/cve/CVE-2026-35594.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-35594","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-35594"},"summary":{"title":"Vikunja Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade","description":"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.","state":"PUBLISHED","assigner":"GitHub_M","published_at":"2026-04-10 16:16:32","updated_at":"2026-04-10 16:16:32"},"problem_types":["CWE-613","CWE-613 CWE-613: Insufficient Session Expiration"],"metrics":[{"version":"3.1","source":"security-advisories@github.com","type":"Secondary","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"6.5","severity":"MEDIUM","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","data":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"LOW","integrityImpact":"LOW","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","version":"3.1"}}],"references":[{"url":"https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0","name":"https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-96q5-xm3p-7m84","name":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-96q5-xm3p-7m84","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/go-vikunja/vikunja/commit/379d8a5c19334ffe4846003f590e202c31a75479","name":"https://github.com/go-vikunja/vikunja/commit/379d8a5c19334ffe4846003f590e202c31a75479","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://github.com/go-vikunja/vikunja/pull/2581","name":"https://github.com/go-vikunja/vikunja/pull/2581","refsource":"security-advisories@github.com","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-35594","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-35594","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"go-vikunja","product":"vikunja","version":"affected < 2.3.0","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"35594","cve":"CVE-2026-35594","epss":"0.000380000","percentile":"0.114130000","score_date":"2026-04-11","updated_at":"2026-04-12 00:01:10"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"product":"vikunja","vendor":"go-vikunja","versions":[{"status":"affected","version":"< 2.3.0"}]}],"descriptions":[{"lang":"en","value":"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."}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":6.5,"baseSeverity":"MEDIUM","confidentialityImpact":"LOW","integrityImpact":"LOW","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-613","description":"CWE-613: Insufficient Session Expiration","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-04-10T15:55:04.929Z","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M"},"references":[{"name":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-96q5-xm3p-7m84","tags":["x_refsource_CONFIRM"],"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-96q5-xm3p-7m84"},{"name":"https://github.com/go-vikunja/vikunja/pull/2581","tags":["x_refsource_MISC"],"url":"https://github.com/go-vikunja/vikunja/pull/2581"},{"name":"https://github.com/go-vikunja/vikunja/commit/379d8a5c19334ffe4846003f590e202c31a75479","tags":["x_refsource_MISC"],"url":"https://github.com/go-vikunja/vikunja/commit/379d8a5c19334ffe4846003f590e202c31a75479"},{"name":"https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0","tags":["x_refsource_MISC"],"url":"https://github.com/go-vikunja/vikunja/releases/tag/v2.3.0"}],"source":{"advisory":"GHSA-96q5-xm3p-7m84","discovery":"UNKNOWN"},"title":"Vikunja Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade"}},"cveMetadata":{"assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","assignerShortName":"GitHub_M","cveId":"CVE-2026-35594","datePublished":"2026-04-10T15:55:04.929Z","dateReserved":"2026-04-03T21:25:12.161Z","dateUpdated":"2026-04-10T15:55:04.929Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-04-10 16:16:32","lastModifiedDate":"2026-04-10 16:16:32","problem_types":["CWE-613","CWE-613 CWE-613: Insufficient Session Expiration"],"metrics":{"cvssMetricV31":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","baseScore":6.5,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":3.9,"impactScore":2.5}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"35594","Ordinal":"1","Title":"Vikunja Link Share JWT tokens remain valid for 72 hours after sh","CVE":"CVE-2026-35594","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"35594","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"Vikunja Link Share JWT tokens remain valid for 72 hours after sh"}]}}}