<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-09-28T18:45:22.710307+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-55066</id>
    <title>fkie_cve-2026-55066</title>
    <updated>2026-09-28T18:45:22.734378+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-55066"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-5pg6-m483-7vrg</id>
    <title>GHSA-5pg6-m483-7vrg — Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id</title>
    <updated>2026-09-28T18:45:22.734450+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: code.vikunja.io/api</p>
<p>## Summary</p>
<p>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`.</p>
<p>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.</p>
<p>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.</p>
<p>---</p>
<p>## Root cause</p>
<p>### 1. `task_id` is body-controlled and never permission-checked</p>
<p>`pkg/models/kanban_task_bucket.go:32`:</p>
<p>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"`
        ...
    }</p>
<p>The web handler `Upd…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-5pg6-m483-7vrg"/>
  </entry>
</feed>
