{"id":"CVE-2026-54766","title":"Vikunja is an open-source self-hosted task management platform","summary":"Vikunja is an open-source self-hosted task management platform. From 0.21.0 until 2.4.0, the project duplication operation in pkg/models/project_duplicate.go allows an authenticated user who can read a source project to place its duplica…","severity":"medium","cwe":["CWE-285","CWE-863"],"vendor":"api","product":"code.vikunja.io/api","affected":["code.vikunja.io/api >= 0.21.0, <= 2.3.0"],"patched":["code.vikunja.io/api 2.4.0"],"published":"2026-08-28","updated":"2026-09-09","sourceUpdated":"2026-09-09T21:09:13.080","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-54766","references":[{"url":"https://github.com/go-vikunja/vikunja/commit/d911caaa11c748c3abc6b98b3189afea2677bcb0","label":"security-advisories@github.com"},{"url":"https://github.com/go-vikunja/vikunja/pull/3239","label":"security-advisories@github.com"},{"url":"https://github.com/go-vikunja/vikunja/releases/tag/v2.4.0","label":"security-advisories@github.com"},{"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-f27p-pw2p-9pr4","label":"security-advisories@github.com"},{"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-f27p-pw2p-9pr4","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://github.com/advisories/GHSA-f27p-pw2p-9pr4"}],"tags":["nvd","ghsa","go"],"epss":0.00427,"epssPercentile":0.34276,"aliases":["GHSA-f27p-pw2p-9pr4"],"ecosystem":"go","ingestedAt":"2026-08-28T17:22:56.565Z","slug":"CVE-2026-54766","body":"## Overview\n\nVikunja is an open-source self-hosted task management platform. From 0.21.0 until 2.4.0, the project duplication operation in pkg/models/project_duplicate.go allows an authenticated user who can read a source project to place its duplicate beneath an arbitrary target parent project. ProjectDuplicate.CanCreate calls parent.CanCreate on an unhydrated Project containing only the body supplied parent_project_id instead of calling parent.CanWrite, so the target parent write-permission check is skipped. The ordinary project creation path enforces that permission, but PUT /api/v1/projects/{project}/duplicate does not, allowing attacker-owned content to be injected into another user or team project hierarchy. This issue is fixed in version 2.4.0.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-54766)\n\nAffected packages:\n\n- `code.vikunja.io/api >= 0.21.0, <= 2.3.0`\n\nPatched in:\n\n- `code.vikunja.io/api 2.4.0`\n\nSource: https://github.com/advisories/GHSA-f27p-pw2p-9pr4","depth":"sunlit","depthScore":28,"depthScoreParts":{"impact":27.5,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}