{"id":"CVE-2026-123518","kind":"vulnerability","aliases":["CVE-2026-123518"],"related":[],"title":"Vikunja: task can be moved into another project's kanban bucket","description":"Vikunja before 2.7.1 contains an incorrect authorization vulnerability in TaskBucket.CanUpdate, which checks write access to the bucket's project and to the task separately but never verifies that both belong to the same project. Authenticated users with write access to two projects can move a task into another project's kanban bucket. This persists cross-project task_buckets rows that count toward bucket limits and, for done buckets, toggle the task's done state.","summary":"Vikunja before 2.7.1 checks write access to a bucket's project and to the task separately, but never checks that both belong to the same project. A signed-in user with write access to two projects can move a task into a kanban bucket in a project they do not control, which can change that task's done state.","severity":"medium","cvss":5.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["kanban","package","self-hosted","vikunja"],"not_affected_if":["single-project-users","version-2.7.1-or-later"],"how_to_check":"- Check the installed Vikunja version; `2.7.1` or later is not affected by this entry.\n- Look for users who hold write access to more than one project on a self-hosted instance.","fix":"- Vikunja: move to `2.7.1` or later (per the NVD entry's product range).","status":"open","published_at":"2026-11-08T02:16:40+00:00","first_seen_at":"2026-11-08T02:21:09+00:00","triaged_at":"2026-11-08T02:25:19+00:00","updated_at":"2026-11-08T02:25:19+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-08T02:25:19Z","model":"claude-haiku-5-5","output":{"fix":"- Vikunja: move to `2.7.1` or later (per the NVD entry's product range).","reach":"network","title":"Vikunja: task can be moved into another project's kanban bucket","impact":"low","summary":"Vikunja before 2.7.1 checks write access to a bucket's project and to the task separately, but never checks that both belong to the same project. A signed-in user with write access to two projects can move a task into a kanban bucket in a project they do not control, which can change that task's done state.","audience":"businesses","category":"package","nicknames":[],"who_cares":["vikunja","self-hosted","kanban"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"authenticated user moves tasks between projects, altering done state","analyst_note":"","how_to_check":"- Check the installed Vikunja version; `2.7.1` or later is not affected by this entry.\n- Look for users who hold write access to more than one project on a self-hosted instance.","plain_action":"","needs_analyst":false,"not_affected_if":["version-2.7.1-or-later","single-project-users"],"who_is_affected":"Vikunja instances before 2.7.1 where users have write access to more than one project. An attacker needs a valid account with write access to two projects, so instances where all users are trusted or have access to a single project are lower risk. Instances on hosted or managed Vikunja should wait for the vendor to confirm their version.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000692,"input_tokens":4318,"output_tokens":521,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-123518':14A,17A '-2026':13A,16A '2.7.1':26B,86C 'access':29B,57B,97C,122C 'anoth':7A,131C 'authent':118C 'author':90C 'belong':45B,113C 'bucket':11A,32B,68B,100C,135C,142C,147C,152C 'chang':78B 'check':27B,42B,95C 'contain':87C 'control':75B 'count':145C 'cross':139C 'cross-project':138C 'cve':12A,15A 'done':82B,151C,157C 'host':22B 'incorrect':89C 'kanban':10A,18B,67B,134C 'limit':148C 'move':5A,62B,127C 'never':41B,109C 'packag':19B 'persist':137C 'project':8A,34B,49B,60B,71B,102C,117C,125C,132C,140C 'row':143C 'self':21B 'self-host':20B 'separ':39B,107C 'sign':52B 'signed-in':51B 'state':83B,158C 'task':2A,38B,64B,80B,106C,129C,141C,155C 'taskbucket.canupdate':93C 'toggl':153C 'toward':146C 'two':59B,124C 'user':54B,119C 'verifi':110C 'vikunja':1A,23B,24B,84C 'vulner':91C 'write':28B,56B,96C,121C","nicknames":[],"mitigations":[],"who_affected":"Vikunja instances before 2.7.1 where users have write access to more than one project. An attacker needs a valid account with write access to two projects, so instances where all users are trusted or have access to a single project are lower risk. Instances on hosted or managed Vikunja should wait for the vendor to confirm their version.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["kanban","medium","package","selfhosted","vikunja"],"campaign_type":null,"search_a":"'-123518':14A,17A '-2026':13A,16A 'anoth':7A 'bucket':11A 'cve':12A,15A 'kanban':10A 'move':5A 'project':8A 'task':2A 'vikunja':1A","search_b":"'2.7.1':26B 'access':29B,57B 'belong':45B 'bucket':32B,68B 'chang':78B 'check':27B,42B 'control':75B 'done':82B 'host':22B 'kanban':18B,67B 'move':62B 'never':41B 'packag':19B 'project':34B,49B,60B,71B 'self':21B 'self-host':20B 'separ':39B 'sign':52B 'signed-in':51B 'state':83B 'task':38B,64B,80B 'two':59B 'user':54B 'vikunja':23B,24B 'write':28B,56B","search_c":"'2.7.1':86C 'access':97C,122C 'anoth':131C 'authent':118C 'author':90C 'belong':113C 'bucket':100C,135C,142C,147C,152C 'check':95C 'contain':87C 'count':145C 'cross':139C 'cross-project':138C 'done':151C,157C 'incorrect':89C 'kanban':134C 'limit':148C 'move':127C 'never':109C 'persist':137C 'project':102C,117C,125C,132C,140C 'row':143C 'separ':107C 'state':158C 'task':106C,129C,141C,155C 'taskbucket.canupdate':93C 'toggl':153C 'toward':146C 'two':124C 'user':119C 'verifi':110C 'vikunja':84C 'vulner':91C 'write':96C,121C","first_public_at":"2026-10-22T10:05:37+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123518","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123518","severity":null,"published_at":"2026-11-08T02:16:40+00:00","modified_at":"2026-11-08T02:16:41+00:00","first_seen_at":"2026-11-08T02:21:09+00:00","fetched_at":"2026-11-08T02:21:09+00:00","note":null}],"documents":[{"id":99185,"url":"https://github.com/go-vikunja/vikunja/security/advisories/GHSA-w64q-7p4m-j8g8","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-22T10:05:37+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":99186,"url":"https://www.vulncheck.com/advisories/vikunja-before-2.7.1-missing-authorization-in-kanban-task-bucket-move","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}