<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Vikunja (All Versions Prior to Patch) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/vikunja-all-versions-prior-to-patch/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Fri, 28 Aug 2026 21:18:53 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/vikunja-all-versions-prior-to-patch/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Vikunja Improper Authorization via ProjectView Deletion</title><link>https://feed.craftedsignal.io/briefs/2026-08-vikunja-auth-bypass/</link><pubDate>Fri, 28 Aug 2026 21:18:53 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-08-vikunja-auth-bypass/</guid><description>An improper authorization vulnerability in Vikunja allows authenticated users to destroy task organization data in other projects by supplying a target view ID within a crafted API request.</description><content:encoded><![CDATA[<p>Vikunja contains an authorization bypass vulnerability (CWE-639) within the <code>ProjectView.Delete</code> method, which fails to properly validate that a requested view ID belongs to the project ID specified in the API path. Although the initial permission check correctly verifies that the user is an administrator of the provided project, the subsequent cascading delete operations on the <code>task_buckets</code> and <code>task_positions</code> tables are performed using only the view ID. Because the application does not verify the relationship between the project and the view during these cascading operations, an authenticated attacker can supply their own project ID while targeting a view ID belonging to a victim project. This results in the silent destruction of all Kanban bucket assignments and task orderings for the victim view, with no programmatic recovery path other than restoring from backups. The issue originates in <code>pkg/models/project_view.go</code> and affects all versions prior to the patch.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker registers a local account on the target Vikunja instance (no special privileges required).</li>
<li>Attacker creates a new project via <code>PUT /api/v1/projects</code>, granting themselves Admin access to the new project ID (<code>P_A</code>).</li>
<li>Attacker identifies a victim Kanban view ID (<code>V</code>) by enumerating projects or observing API traffic.</li>
<li>Attacker constructs a malicious <code>DELETE</code> request: <code>DELETE /api/v1/projects/P_A/views/V</code>.</li>
<li>The application's <code>CanDelete</code> method validates the user is an admin of <code>P_A</code> and permits the request.</li>
<li>The <code>ProjectView.Delete</code> method executes the first scoped SQL statement, which fails silently because <code>V</code> does not belong to <code>P_A</code>.</li>
<li>The function proceeds to execute subsequent unscoped SQL <code>DELETE</code> statements on the <code>task_buckets</code> and <code>task_positions</code> tables using <code>V</code>.</li>
<li>All Kanban organization data for the victim view <code>V</code> is permanently deleted from the database.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in the permanent loss of all task-to-bucket mappings and custom task ordering for the targeted Kanban view. This causes significant operational disruption for teams relying on Kanban boards, requiring manual reconfiguration or restoration from database backups. The vulnerability is highly accessible as it requires only standard user registration.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade Vikunja immediately to the version containing the security patch that enforces project-view relationship validation within the <code>ProjectView.Delete</code> model method.</li>
<li>Implement strict input validation to verify that <code>view_id</code> maps to the <code>project_id</code> provided in the API request before any database modification occurs.</li>
<li>Ensure database backups are performed regularly and tested for restoration to mitigate the impact of data destruction vulnerabilities.</li>
<li>Review audit logs for <code>DELETE</code> operations on the <code>project_views</code> endpoint that target views not associated with the authenticated user's project ownership.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>authorization-bypass</category><category>web-application</category><category>data-destruction</category></item></channel></rss>