<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Sep 2026 18:45:25 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-55066</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-55066</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-55066</guid>
    </item>
    <item>
      <title>GHSA-5pg6-m483-7vrg — Vikunja has cross-tenant IDOR in kanban move-task endpoint via unauthorized body task_id</title>
      <link>https://db.gcve.eu/vuln/ghsa-5pg6-m483-7vrg</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.vikunja.io/api&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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&amp;#39;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`.&lt;/p&gt;
&lt;p&gt;Any authenticated user can therefore supply another user&amp;#39;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 &amp;#34;done&amp;#34;
bucket — writes to the victim task&amp;#39;s row.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;### 1. `task_id` is body-controlled and never permission-checked&lt;/p&gt;
&lt;p&gt;`pkg/models/kanban_task_bucket.go:32`:&lt;/p&gt;
&lt;p&gt;type TaskBucket struct {
        BucketID      int64 `... json:&amp;#34;bucket_id&amp;#34; param:&amp;#34;bucket&amp;#34;`
        TaskID        int64 `... json:&amp;#34;task_id&amp;#34;`              // body-bound only — no param tag
        ProjectViewID int64 `... json:&amp;#34;project_view_id&amp;#34; param:&amp;#34;view&amp;#34;`
        ProjectID     int64 `xorm:&amp;#34;-&amp;#34; json:&amp;#34;-&amp;#34; param:&amp;#34;project&amp;#34;`
        ...
    }&lt;/p&gt;
&lt;p&gt;The web handler `Upd…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.vikunja.io/api&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;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&amp;#39;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`.&lt;/p&gt;
&lt;p&gt;Any authenticated user can therefore supply another user&amp;#39;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 &amp;#34;done&amp;#34;
bucket — writes to the victim task&amp;#39;s row.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Root cause&lt;/p&gt;
&lt;p&gt;### 1. `task_id` is body-controlled and never permission-checked&lt;/p&gt;
&lt;p&gt;`pkg/models/kanban_task_bucket.go:32`:&lt;/p&gt;
&lt;p&gt;type TaskBucket struct {
        BucketID      int64 `... json:&amp;#34;bucket_id&amp;#34; param:&amp;#34;bucket&amp;#34;`
        TaskID        int64 `... json:&amp;#34;task_id&amp;#34;`              // body-bound only — no param tag
        ProjectViewID int64 `... json:&amp;#34;project_view_id&amp;#34; param:&amp;#34;view&amp;#34;`
        ProjectID     int64 `xorm:&amp;#34;-&amp;#34; json:&amp;#34;-&amp;#34; param:&amp;#34;project&amp;#34;`
        ...
    }&lt;/p&gt;
&lt;p&gt;The web handler `Upd…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-5pg6-m483-7vrg</guid>
    </item>
  </channel>
</rss>
