PT-2026-83229 · Vikunja · Vikunja

CVE-2026-54766

·

Published

2026-08-28

·

Updated

2026-09-08

CVSS v4.0

5.3

Medium

VectorAV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/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
Name of the Vulnerable Software and Affected Versions Vikunja versions 0.21.0 through 2.3.0
Description An authorization bypass exists in the project duplication process. An authenticated user with read access to a source project can duplicate it and place the copy under any arbitrary target parent project, regardless of whether they have write permissions for that parent. This allows an attacker to inject their own projects into the project hierarchies of other users or teams, potentially enabling spam or phishing within another tenant's workspace.
The issue occurs because the ProjectDuplicate.CanCreate() function in pkg/models/project duplicate.go incorrectly calls parent.CanCreate() instead of parent.CanWrite(). Additionally, the parent project object is not loaded from the database (unhydrated), causing the permission check to be skipped and return true for any authenticated user. This flaw affects the PUT /api/v1/projects/{project}/duplicate endpoint and the parent project id variable.
Recommendations Update Vikunja to version 2.4.0. As a temporary workaround, restrict access to the PUT /api/v1/projects/{project}/duplicate endpoint to minimize the risk of unauthorized project injection.

Exploit

Fix

Improper Authorization

Incorrect Authorization

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-54766
GHSA-F27P-PW2P-9PR4
GO-2026-6311
OPENSUSE-SU-2026:21812-1

Affected Products

Vikunja