CVE-2026-55066
Vikunja: Cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.1
Vikunja: Cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.
- Record
CVE-2026-55066- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-639
- Updated
- 2026-11-02
EUVDEUVD-2026-67833
7.1
Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.
- Record
EUVD-2026-67833- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-5pg6-m483-7vrg
7.1
Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
Summary
The kanban endpoint POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks
moves a task into a bucket. The task is identified by task_id in the request
body. The endpoint's authorization check (TaskBucket.CanUpdate) only verifies
that the caller may update the project/view/bucket named in the URL — it never
checks any permission on task_id.
Any authenticated user can therefore supply another user's task ID (task IDs are a global, sequential integer space) against a kanban bucket in their own project. The server loads that victim task with no authorization check, returns its full contents in the response, and — when the target bucket is a "done" bucket — writes to the victim task's row.
This is the same vulnerability class Vikunja has already remediated for task
relations (CVE-2026-33676), task attachments (CVE-2026-33678), task comments
(CVE-2026-33313) and CalDAV task read (CVE-2026-35598). TaskBucket is the
task-child operation that was missed.
Root cause
1. task_id is body-controlled and never permission-checked
pkg/models/kanban_task_bucket.go:32:
type TaskBucket struct {
BucketID int64 `... json:"bucket_id" param:"bucket"`
TaskID int64 `... json:"task_id"` // body-bound only — no param tag
ProjectViewID int64 `... json:"project_view_id" param:"view"`
ProjectID int64 `xorm:"-" json:"-" param:"project"`
...
}
The web handler UpdateWeb (pkg/web/handler/update.go) populates the struct via
ctx.Bind, which binds both URL path params (param: tags) and the JSON body.
BucketID, ProjectViewID, ProjectID come from the trusted URL; TaskID comes
entirely from the attacker-controlled body.
2. CanUpdate authorizes the URL, not the task
pkg/models/kanban_task_bucket.go:52:
func (b *TaskBucket) CanUpdate(s *xorm.Session, a web.Auth) (bool, error) {
bucket := Bucket{ID: b.BucketID, ProjectID: b.ProjectID, ProjectViewID: b.ProjectViewID}
return bucket.canDoBucket(s, a)
}
canDoBucket (pkg/models/kanban_permissions.go:46) resolves the bucket/view and
ends in Project{ID: pv.ProjectID}.CanUpdate(s, a) — a permission check on the
project from the URL. b.TaskID is never referenced. The attacker owns that
project, so the check passes.
3. The task is loaded and mutated with no authorization
updateTaskBucket (pkg/models/kanban_task_bucket.go:119):
task := &Task{ID: b.TaskID}
err = task.ReadOne(s, a) // loads ANY task by ID — no permission check
Task.ReadOne (pkg/models/tasks.go:1967) calls GetTaskByIDSimple +
addMoreInfoToTasks; it performs no authorization (authorization normally lives
in the separate Task.CanRead, which this internal call path bypasses).
-
Read: the fully populated victim task is assigned to
b.Task(line 227) and returned by theUpdatehandler in the response"task"field. -
Write: if the target bucket is the view's done bucket (
view.DoneBucketID == b.BucketID && !task.Done, line 141), the handler setstask.Done = trueand persists it to the victim's task row:_, err = s.Where("id = ?", task.ID). Cols("done", "due_date", "start_date", "end_date", "done_at"). Update(task)
Proof of Concept
The attacker is any normal authenticated user. They first create their own kanban project/view/bucket (free for every user), then:
POST /api/v1/projects/{ATTACKER_PROJECT}/views/{ATTACKER_VIEW}/buckets/{ATTACKER_BUCKET}/tasks HTTP/1.1
Host: TARGET
Authorization: Bearer {ATTACKER_JWT}
Content-Type: application/json
{"task_id": {VICTIM_TASK_ID}}
The 200 response body contains the victim task in full under "task" — title,
description, dates, assignees, labels, attachment list, reactions. Task IDs are a
global sequential counter, so iterating task_id enumerates every task on the
instance.
If…
- Record
GHSA-5pg6-m483-7vrg- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-639
- Updated
- 2026-11-02
NVD
7.1
Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.
- Record
CVE-2026-55066- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-639
- Updated
- 2026-11-02
OSV
7.1
Vikunja: Cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
Vikunja is an open-source self-hosted task management platform. Prior to 2.4.0, POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks accepts a body supplied task_id but TaskBucket.CanUpdate in pkg/models/kanban_task_bucket.go authorizes only the project, view, and bucket from the URL. updateTaskBucket then calls Task.ReadOne without a separate task permission check, returns the victim task contents, and can update the task done state when the attacker chooses a done bucket. Because task identifiers are global sequential values, an authenticated user can enumerate cross-tenant tasks and modify their completion metadata through both the v1 and v2 routes that share this model. This issue is fixed in version 2.4.0.
- Record
CVE-2026-55066- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-639
- Updated
- 2026-11-02
OSVGHSA-5pg6-m483-7vrg
7.1
Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id
Summary
The kanban endpoint POST /api/v1/projects/{project}/views/{view}/buckets/{bucket}/tasks
moves a task into a bucket. The task is identified by task_id in the request
body. The endpoint's authorization check (TaskBucket.CanUpdate) only verifies
that the caller may update the project/view/bucket named in the URL — it never
checks any permission on task_id.
Any authenticated user can therefore supply another user's task ID (task IDs are a global, sequential integer space) against a kanban bucket in their own project. The server loads that victim task with no authorization check, returns its full contents in the response, and — when the target bucket is a "done" bucket — writes to the victim task's row.
This is the same vulnerability class Vikunja has already remediated for task
relations (CVE-2026-33676), task attachments (CVE-2026-33678), task comments
(CVE-2026-33313) and CalDAV task read (CVE-2026-35598). TaskBucket is the
task-child operation that was missed.
Root cause
1. task_id is body-controlled and never permission-checked
pkg/models/kanban_task_bucket.go:32:
type TaskBucket struct {
BucketID int64 `... json:"bucket_id" param:"bucket"`
TaskID int64 `... json:"task_id"` // body-bound only — no param tag
ProjectViewID int64 `... json:"project_view_id" param:"view"`
ProjectID int64 `xorm:"-" json:"-" param:"project"`
...
}
The web handler UpdateWeb (pkg/web/handler/update.go) populates the struct via
ctx.Bind, which binds both URL path params (param: tags) and the JSON body.
BucketID, ProjectViewID, ProjectID come from the trusted URL; TaskID comes
entirely from the attacker-controlled body.
2. CanUpdate authorizes the URL, not the task
pkg/models/kanban_task_bucket.go:52:
func (b *TaskBucket) CanUpdate(s *xorm.Session, a web.Auth) (bool, error) {
bucket := Bucket{ID: b.BucketID, ProjectID: b.ProjectID, ProjectViewID: b.ProjectViewID}
return bucket.canDoBucket(s, a)
}
canDoBucket (pkg/models/kanban_permissions.go:46) resolves the bucket/view and
ends in Project{ID: pv.ProjectID}.CanUpdate(s, a) — a permission check on the
project from the URL. b.TaskID is never referenced. The attacker owns that
project, so the check passes.
3. The task is loaded and mutated with no authorization
updateTaskBucket (pkg/models/kanban_task_bucket.go:119):
task := &Task{ID: b.TaskID}
err = task.ReadOne(s, a) // loads ANY task by ID — no permission check
Task.ReadOne (pkg/models/tasks.go:1967) calls GetTaskByIDSimple +
addMoreInfoToTasks; it performs no authorization (authorization normally lives
in the separate Task.CanRead, which this internal call path bypasses).
-
Read: the fully populated victim task is assigned to
b.Task(line 227) and returned by theUpdatehandler in the response"task"field. -
Write: if the target bucket is the view's done bucket (
view.DoneBucketID == b.BucketID && !task.Done, line 141), the handler setstask.Done = trueand persists it to the victim's task row:_, err = s.Where("id = ?", task.ID). Cols("done", "due_date", "start_date", "end_date", "done_at"). Update(task)
Proof of Concept
The attacker is any normal authenticated user. They first create their own kanban project/view/bucket (free for every user), then:
POST /api/v1/projects/{ATTACKER_PROJECT}/views/{ATTACKER_VIEW}/buckets/{ATTACKER_BUCKET}/tasks HTTP/1.1
Host: TARGET
Authorization: Bearer {ATTACKER_JWT}
Content-Type: application/json
{"task_id": {VICTIM_TASK_ID}}
The 200 response body contains the victim task in full under "task" — title,
description, dates, assignees, labels, attachment list, reactions. Task IDs are a
global sequential counter, so iterating task_id enumerates every task on the
instance.
If…
- Record
GHSA-5pg6-m483-7vrg- CVSS 3.1
- 7.1 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N - Weakness
- CWE-639
- Updated
- 2026-11-02
Show 4 moreShow less
OSVGO-2026-6308 No score
Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id in code.vikunja.io/api
Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id in code.vikunja.io/api.
NOTE: The source advisory for this report contains additional versions that could not be automatically mapped to standard Go module versions.
(If this is causing false-positive reports from vulnerability scanners, please suggest an edit to the report.)
The additional affected modules and versions are: code.vikunja.io/api before v2.4.0.
- Record
GO-2026-6308- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21812-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
- Update to version 0.0.20260902T191204 2026-09-02T19:12:04Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-6305 CVE-2026-55834 GHSA-2wvm-8mvp-22qv
- GO-2026-6306 CVE-2026-55064 GHSA-44v6-7fxq-vgf4
- GO-2026-6307 CVE-2026-55067 GHSA-569v-q83c-3j3g
- GO-2026-6308 CVE-2026-55066 GHSA-5pg6-m483-7vrg
- GO-2026-6309 CVE-2026-54746 GHSA-8x7x-83cf-c3pg
- GO-2026-6310 CVE-2026-54755 GHSA-cgc5-v3f2-8m2v
- GO-2026-6311 CVE-2026-54766 GHSA-f27p-pw2p-9pr4
- GO-2026-6312 CVE-2026-55108 GHSA-fmgp-q6jx-gg3x
- GO-2026-6313 CVE-2026-55065 GHSA-gg93-x632-9ccv
- GO-2026-6314 CVE-2026-55569 GHSA-mf5c-hw34-4hpp
- GO-2026-6315 CVE-2026-54754 GHSA-p7gw-2pcp-5pf8
- GO-2026-6316 CVE-2026-55068 GHSA-x8mj-6p3q-g5pp
- GO-2026-6317 CVE-2026-55588 GHSA-298f-872v-2rcx
- GO-2026-6318 CVE-2026-55621 GHSA-64f3-v33m-w89f
- GO-2026-6319 CVE-2026-55622 GHSA-c9f5-j9c3-mhrg
- GO-2026-6320 CVE-2026-55245 GHSA-w98g-5w9p-p3rc
- GO-2026-6321 CVE-2026-55484 GHSA-hr6j-w4mw-g9mj
- GO-2026-6322 CVE-2026-55678 GHSA-p378-jp5r-gpgw
- GO-2026-6323 CVE-2026-55763 GHSA-v358-wf77-39xv
- GO-2026-6324 CVE-2026-55761 GHSA-x626-fcwx-f5pc
- GO-2026-6325 CVE-2026-27878 GHSA-6xff-cpcq-vpw2
- GO-2026-6326 CVE-2026-55784 GHSA-334q-h5g3-fpxv
- GO-2026-6327 CVE-2026-55874 GHSA-56wq-x3wv-3ff4
- GO-2026-6328 CVE-2026-55785 GHSA-fp46-6vfw-gc9c
- GO-2026-6329 CVE-2026-55873 GHSA-hgpf-8634-g44c
- GO-2026-6330 CVE-2026-55764 GHSA-mrpp-v6pg-p54x
- GO-2026-6333 CVE-2026-25712 GHSA-37w2-86g3-h4qh
- GO-2026-6334 CVE-2026-24690 GHSA-47rq-xp99-92mx
- GO-2026-6335 CVE-2026-27657 GHSA-4c8f-3m6h-m56r
- GO-2026-6336 CVE-2026-26232 GHSA-5v69-g2m3-3hq3
- GO-2026-6337 CVE-2026-28705 GHSA-7jvx-g65v-r899
- GO-2026-6338 CVE-2026-22547 GHSA-922f-hfwp-p56f
- GO-2026-6339 CVE-2026-20909 GHSA-fhq3-p242-2qpf
- GO-2026-6340 CVE-2026-25718 GHSA-h697-89cp-24q8
- GO-2026-6341 CVE-2026-26307 GHSA-h9c5-x7g8-4q7f
- GO-2026-6342 CVE-2026-26247 GHSA-m5ch-ppfx-xv3v
- GO-2026-6354 CVE-2026-78662
- GO-2026-6355 CVE-2026-56855
- Update to version 0.0.20260828T144745 2026-08-28T14:47:45Z.
- GO-2026-6303 CVE-2026-56854
- Record
openSUSE-SU-2026:21812-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23692-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
- Update to version 0.0.20260902T191204 2026-09-02T19:12:04Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-6305 CVE-2026-55834 GHSA-2wvm-8mvp-22qv
- GO-2026-6306 CVE-2026-55064 GHSA-44v6-7fxq-vgf4
- GO-2026-6307 CVE-2026-55067 GHSA-569v-q83c-3j3g
- GO-2026-6308 CVE-2026-55066 GHSA-5pg6-m483-7vrg
- GO-2026-6309 CVE-2026-54746 GHSA-8x7x-83cf-c3pg
- GO-2026-6310 CVE-2026-54755 GHSA-cgc5-v3f2-8m2v
- GO-2026-6311 CVE-2026-54766 GHSA-f27p-pw2p-9pr4
- GO-2026-6312 CVE-2026-55108 GHSA-fmgp-q6jx-gg3x
- GO-2026-6313 CVE-2026-55065 GHSA-gg93-x632-9ccv
- GO-2026-6314 CVE-2026-55569 GHSA-mf5c-hw34-4hpp
- GO-2026-6315 CVE-2026-54754 GHSA-p7gw-2pcp-5pf8
- GO-2026-6316 CVE-2026-55068 GHSA-x8mj-6p3q-g5pp
- GO-2026-6317 CVE-2026-55588 GHSA-298f-872v-2rcx
- GO-2026-6318 CVE-2026-55621 GHSA-64f3-v33m-w89f
- GO-2026-6319 CVE-2026-55622 GHSA-c9f5-j9c3-mhrg
- GO-2026-6320 CVE-2026-55245 GHSA-w98g-5w9p-p3rc
- GO-2026-6321 CVE-2026-55484 GHSA-hr6j-w4mw-g9mj
- GO-2026-6322 CVE-2026-55678 GHSA-p378-jp5r-gpgw
- GO-2026-6323 CVE-2026-55763 GHSA-v358-wf77-39xv
- GO-2026-6324 CVE-2026-55761 GHSA-x626-fcwx-f5pc
- GO-2026-6325 CVE-2026-27878 GHSA-6xff-cpcq-vpw2
- GO-2026-6326 CVE-2026-55784 GHSA-334q-h5g3-fpxv
- GO-2026-6327 CVE-2026-55874 GHSA-56wq-x3wv-3ff4
- GO-2026-6328 CVE-2026-55785 GHSA-fp46-6vfw-gc9c
- GO-2026-6329 CVE-2026-55873 GHSA-hgpf-8634-g44c
- GO-2026-6330 CVE-2026-55764 GHSA-mrpp-v6pg-p54x
- GO-2026-6333 CVE-2026-25712 GHSA-37w2-86g3-h4qh
- GO-2026-6334 CVE-2026-24690 GHSA-47rq-xp99-92mx
- GO-2026-6335 CVE-2026-27657 GHSA-4c8f-3m6h-m56r
- GO-2026-6336 CVE-2026-26232 GHSA-5v69-g2m3-3hq3
- GO-2026-6337 CVE-2026-28705 GHSA-7jvx-g65v-r899
- GO-2026-6338 CVE-2026-22547 GHSA-922f-hfwp-p56f
- GO-2026-6339 CVE-2026-20909 GHSA-fhq3-p242-2qpf
- GO-2026-6340 CVE-2026-25718 GHSA-h697-89cp-24q8
- GO-2026-6341 CVE-2026-26307 GHSA-h9c5-x7g8-4q7f
- GO-2026-6342 CVE-2026-26247 GHSA-m5ch-ppfx-xv3v
- GO-2026-6354 CVE-2026-78662
- GO-2026-6355 CVE-2026-56855
- Update to version 0.0.20260828T144745 2026-08-28T14:47:45Z.
- GO-2026-6303 CVE-2026-56854
- Record
SUSE-SU-2026:23692-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:23712-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
- Update to version 0.0.20260902T191204 2026-09-02T19:12:04Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-6305 CVE-2026-55834 GHSA-2wvm-8mvp-22qv
- GO-2026-6306 CVE-2026-55064 GHSA-44v6-7fxq-vgf4
- GO-2026-6307 CVE-2026-55067 GHSA-569v-q83c-3j3g
- GO-2026-6308 CVE-2026-55066 GHSA-5pg6-m483-7vrg
- GO-2026-6309 CVE-2026-54746 GHSA-8x7x-83cf-c3pg
- GO-2026-6310 CVE-2026-54755 GHSA-cgc5-v3f2-8m2v
- GO-2026-6311 CVE-2026-54766 GHSA-f27p-pw2p-9pr4
- GO-2026-6312 CVE-2026-55108 GHSA-fmgp-q6jx-gg3x
- GO-2026-6313 CVE-2026-55065 GHSA-gg93-x632-9ccv
- GO-2026-6314 CVE-2026-55569 GHSA-mf5c-hw34-4hpp
- GO-2026-6315 CVE-2026-54754 GHSA-p7gw-2pcp-5pf8
- GO-2026-6316 CVE-2026-55068 GHSA-x8mj-6p3q-g5pp
- GO-2026-6317 CVE-2026-55588 GHSA-298f-872v-2rcx
- GO-2026-6318 CVE-2026-55621 GHSA-64f3-v33m-w89f
- GO-2026-6319 CVE-2026-55622 GHSA-c9f5-j9c3-mhrg
- GO-2026-6320 CVE-2026-55245 GHSA-w98g-5w9p-p3rc
- GO-2026-6321 CVE-2026-55484 GHSA-hr6j-w4mw-g9mj
- GO-2026-6322 CVE-2026-55678 GHSA-p378-jp5r-gpgw
- GO-2026-6323 CVE-2026-55763 GHSA-v358-wf77-39xv
- GO-2026-6324 CVE-2026-55761 GHSA-x626-fcwx-f5pc
- GO-2026-6325 CVE-2026-27878 GHSA-6xff-cpcq-vpw2
- GO-2026-6326 CVE-2026-55784 GHSA-334q-h5g3-fpxv
- GO-2026-6327 CVE-2026-55874 GHSA-56wq-x3wv-3ff4
- GO-2026-6328 CVE-2026-55785 GHSA-fp46-6vfw-gc9c
- GO-2026-6329 CVE-2026-55873 GHSA-hgpf-8634-g44c
- GO-2026-6330 CVE-2026-55764 GHSA-mrpp-v6pg-p54x
- GO-2026-6333 CVE-2026-25712 GHSA-37w2-86g3-h4qh
- GO-2026-6334 CVE-2026-24690 GHSA-47rq-xp99-92mx
- GO-2026-6335 CVE-2026-27657 GHSA-4c8f-3m6h-m56r
- GO-2026-6336 CVE-2026-26232 GHSA-5v69-g2m3-3hq3
- GO-2026-6337 CVE-2026-28705 GHSA-7jvx-g65v-r899
- GO-2026-6338 CVE-2026-22547 GHSA-922f-hfwp-p56f
- GO-2026-6339 CVE-2026-20909 GHSA-fhq3-p242-2qpf
- GO-2026-6340 CVE-2026-25718 GHSA-h697-89cp-24q8
- GO-2026-6341 CVE-2026-26307 GHSA-h9c5-x7g8-4q7f
- GO-2026-6342 CVE-2026-26247 GHSA-m5ch-ppfx-xv3v
- GO-2026-6354 CVE-2026-78662
- GO-2026-6355 CVE-2026-56855
- Update to version 0.0.20260828T144745 2026-08-28T14:47:45Z.
- GO-2026-6303 CVE-2026-56854
- Record
SUSE-SU-2026:23712-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
code.vikunja.io/apiGo |
through 2.3.0 | 2.4.0 |
code.vikunja.io/apiGo |
before 2.4.0 | 2.4.0 |
code.vikunja.io/apiGo |
All versions | None known |
govulncheck-vulndbSUSE:Linux Enterprise Server 16.0 From an advisory covering 39 CVEs |
before 0.0.20260902T191204-160000.1.1 | 0.0.20260902T191204-160000.1.1 |
govulncheck-vulndbSUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 39 CVEs |
before 0.0.20260902T191204-160000.1.1 | 0.0.20260902T191204-160000.1.1 |
govulncheck-vulndbopenSUSE:Leap 16.0 From an advisory covering 39 CVEs |
before 0.0.20260902T191204-160000.1.1 | 0.0.20260902T191204-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-55066 is a high vulnerability (CVSS 7.1) in Go-vikunja Vikunja, published August 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.37%, the 30th percentile. Fixed in code.vikunja.io/api 2.4.0.
References
github.com/go-vikunja/vikunja/security/advisories/GHSA-5pg6-m483-7vrg
github.com/go-vikunja/vikunja/pull/3239
github.com/go-vikunja/vikunja/commit/36cdc2ce2be0b8ccc74227d178b92047d59cd65f
github.com/go-vikunja/vikunja/releases/tag/v2.4.0
github.com/advisories/GHSA-5pg6-m483-7vrg
github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55066.json
Show 43 moreShow less
nvd.nist.gov/vuln/detail/CVE-2026-55066
github.com/go-vikunja/vikunja
suse.com/support/update/announcement/2026/suse-su-202623692-1
suse.com/security/cve/CVE-2026-20909
suse.com/security/cve/CVE-2026-22547
suse.com/security/cve/CVE-2026-24690
suse.com/security/cve/CVE-2026-25712
suse.com/security/cve/CVE-2026-25718
suse.com/security/cve/CVE-2026-26232
suse.com/security/cve/CVE-2026-26247
suse.com/security/cve/CVE-2026-26307
suse.com/security/cve/CVE-2026-27657
suse.com/security/cve/CVE-2026-27878
suse.com/security/cve/CVE-2026-28705
suse.com/security/cve/CVE-2026-54746
suse.com/security/cve/CVE-2026-54754
suse.com/security/cve/CVE-2026-54755
suse.com/security/cve/CVE-2026-54766
suse.com/security/cve/CVE-2026-55064
suse.com/security/cve/CVE-2026-55065
suse.com/security/cve/CVE-2026-55066
suse.com/security/cve/CVE-2026-55067
suse.com/security/cve/CVE-2026-55068
suse.com/security/cve/CVE-2026-55108
suse.com/security/cve/CVE-2026-55245
suse.com/security/cve/CVE-2026-55484
suse.com/security/cve/CVE-2026-55569
suse.com/security/cve/CVE-2026-55588
suse.com/security/cve/CVE-2026-55621
suse.com/security/cve/CVE-2026-55622
suse.com/security/cve/CVE-2026-55678
suse.com/security/cve/CVE-2026-55761
suse.com/security/cve/CVE-2026-55763
suse.com/security/cve/CVE-2026-55764
suse.com/security/cve/CVE-2026-55784
suse.com/security/cve/CVE-2026-55785
suse.com/security/cve/CVE-2026-55834
suse.com/security/cve/CVE-2026-55873
suse.com/security/cve/CVE-2026-55874
suse.com/security/cve/CVE-2026-56854
suse.com/security/cve/CVE-2026-56855
suse.com/security/cve/CVE-2026-78662
suse.com/support/update/announcement/2026/suse-su-202623712-1
Left out here: the rest of 2 source descriptions. The JSON record has them.