{"id":"CVE-2026-33678","published":"2026-03-24T15:44:06Z","modified":"2026-03-24T17:04:42Z","title":"Vikunja has IDOR in Task Attachment ReadOne Allows Cross-Project File Access and Deletion","vendor":"go-vikunja","product":"vikunja","tier":"tail","description":{"text":"Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, `TaskAttachment.ReadOne()` queries attachments by ID only (`WHERE id = ?`), ignoring the task ID from the URL path. The permission check in `CanRead()` validates access to the task specified in the URL, but `ReadOne()` loads a different attachment that may belong to a task in another project. This allows any authenticated user to download or delete any attachment in the system by providing their own accessible task ID with a target attachment ID. Attachment IDs are sequential integers, making enumeration trivial. Version 2.2.1 patches the issue.","provenance":"source","from":"CVE.org"},"cvss":{"score":8.1,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00318,"percentile":0.24651,"provenance":"source"},"cwes":[{"id":"CWE-639","name":"Authorization Bypass Through User-Controlled Key"}],"references":[{"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-jfmm-mjcp-8wq2","tags":["x_refsource_CONFIRM"]},{"url":"https://vikunja.io/changelog/vikunja-v2.2.2-was-released","tags":["x_refsource_MISC"]}],"priority":{"score":10.6,"factors":[{"name":"EPSS percentile","points":4.93},{"name":"CVSS severity","points":5.67}]},"vendorSlug":"go-vikunja","affectedVersions":[{"vendor":"go-vikunja","product":"vikunja","versions":["< 2.2.1"]}],"affected":[{"ecosystem":"Go","package":"code.vikunja.io/api","vulnerableRanges":["<2.2.1","all versions"],"patched":["2.2.1"],"from":["GHSA-jfmm-mjcp-8wq2","GO-2026-4853"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-14921","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-go-vikunja-vikunja-cve-2026-33678","children":[{"from":"CVE-2026-33678","to":"CVE-2026-56765","relation":"related","confidence":"high","kind":"lineage","evidence":[{"kind":"osv-related","provenance":"source","id":"GHSA-2pv8-4c52-mf8j","via":"reference","url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-jfmm-mjcp-8wq2"},{"kind":"osv-related","provenance":"source","id":"GO-2026-4855","via":"reference","url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-jfmm-mjcp-8wq2"}]}]}}