# Vikunja task relation deletion authorization bypass

Source: https://junglewise.ai/threats/vikunja-task-relation-deletion-does-not-check-read-access-to-the-other-1914d79c  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-09. Updated: 2026-10-11  
License: CC BY 4.0 with a link back

Severity: medium · CVSS 4 · Published 2026-10-09

Vikunja is a self-hosted task and project management application. An authenticated user with write access to one project can delete task relations that link to tasks in projects they cannot read, causing those relations to disappear for other project members without audit trail. This is an integrity violation that could disrupt project workflows.

Technologies: [code.vikunja.io/api (Go)](https://junglewise.ai/threats/technologies/code-vikunja-io-api), [Vikunja](https://junglewise.ai/threats/technologies/vikunja). Vendors: [Go](https://junglewise.ai/threats/vendors/go), [Vikunja](https://junglewise.ai/threats/vendors/vikunja).

## Quick answers

**Is This vulnerability exploited in the wild?** No. Junglewise Threat Intelligence has no report of This vulnerability being exploited in the wild.

**How severe is This vulnerability?** Medium severity, with a CVSS score of 4, published 9 October 2026.

**Which products and versions are affected?** code.vikunja.io/api (Go) ECOSYSTEM:introduced=0.9,fixed=2.6.0; Vikunja 0.9 through 2.5.0.

**Is there a fix for This vulnerability?** Yes. code.vikunja.io/api (Go): upgrade to 2.6.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is This vulnerability attacked?** It is attacked over the network.

**Am I affected?** Check whether you run code.vikunja.io/api (Go) or Vikunja at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- code.vikunja.io/api (Go): upgrade to 2.6.0 or later

  ```sh
  go get code.vikunja.io/api@v2.6.0
  ```


## Technical details

The TaskRelation.CanDelete() authorization check in pkg/models/task_relation_permissions.go only verifies write access to the base task (TaskID) but fails to check read access to the related task (OtherTaskID), unlike the creation path. When a relation is deleted, both the forward and inverse relation rows are removed from the database, causing the relation to vanish from the far project as well. The vulnerability affects DELETE /api/v1/tasks/{id}/relations/{kind}/{otherTaskId} endpoints and requires the attacker to have write access to a task already related to an inaccessible task.

## Affected products

- Vikunja Vikunja 0.9 through 2.5.0

## Timeline

- 2026-10-09: disclosed
- 2026-10-09: patched: Version 2.6.0 released with fix via commit 077dc4de79ce6f1ab59215a2c7bf9b30423685f2

## References

- [https://github.com/go-vikunja/vikunja/security/advisories/GHSA-w2ch-4xgr-22ww](https://github.com/go-vikunja/vikunja/security/advisories/GHSA-w2ch-4xgr-22ww)
- [https://github.com/go-vikunja/vikunja/pull/3688](https://github.com/go-vikunja/vikunja/pull/3688)

## Related threats

- [Vikunja denial of service via pagination bypass in API v1](https://junglewise.ai/threats/cve-2026-123531-vikunja-from-1-0-0-before-2-7-1-contains-an-uncontrolled)
- [Vikunja missing authentication in TOTP enrollment](https://junglewise.ai/threats/cve-2026-123530-vikunja-before-2-7-1-contains-a-missing-authentication)
- [Vikunja stored CSS injection in rich-text table cells](https://junglewise.ai/threats/cve-2026-123529-vikunja-before-2-7-1-contains-a-stored-css-injection)
- [Vikunja insufficient session expiration in HTTP token middleware](https://junglewise.ai/threats/cve-2026-123528-vikunja-before-2-7-1-contains-an-insufficient-session-expiration)
- [Vikunja API token authorization bypass in v1/v2 collision](https://junglewise.ai/threats/cve-2026-123527-vikunja-from-2-4-0-before-2-7-1-contains-an-authorization-bypass)
