Summary
CVE-2026-56765 describes a critical chained authorization vulnerability in Vikunja, the open-source self-hosted task management platform, affecting all versions up to and including 2.2.0. Two independent flaws — a link share hash disclosure and a cross-project attachment IDOR — can be combined by an unauthenticated attacker to download and permanently delete every file attachment across an entire Vikunja instance. The vulnerability carries a CVSS 4.0 score of 9.3 (Critical).
Technical details
- Root cause (Flaw 1 — Link Share Hash Disclosure): The
LinkSharing.ReadAll()endpoint returns all link shares for a project, including the plaintextHashfield. Although the API correctly clears passwords from the response, it fails to redact share hashes. Any user holding a read-only link share URL — including ones shared publicly — can callGET /api/v1/projects/:project/sharesand enumerate every share on the project, including admin-level hashes. - Root cause (Flaw 2 — Cross-Project Attachment IDOR): The
GetTaskAttachmentendpoint validates the caller’s permissions against a user-supplied task ID parameter, but then retrieves the attachment record from the database by its own sequential integer ID without verifying that the attachment actually belongs to the supplied task. An attacker who has authenticated using an escalated share hash can iterate sequential attachment IDs (1, 2, 3 …) to reach attachments from any project on the instance. - Attack chain: (1) Obtain any valid read-only link share URL (standard collaboration feature, no user account required). (2) Call the
ReadAllshares endpoint to harvest all share hashes, including admin-level ones. (3) Re-authenticate using an admin share hash to gain elevated access. (4) Enumerate sequential attachment IDs via the IDOR to download or delete every file attachment across all projects instance-wide. - Attack vector: Remote, over the network; no authentication or prior account is required — possession of any publicly shared link share URL is sufficient.
- Impact: Full instance-wide confidentiality breach (all file attachments exposed) and integrity breach (all attachments can be permanently deleted). Both VC:H and VI:H are reflected in the official CVSS vector.
Affected software
- Vikunja (Go API, package
code.vikunja.io/api) — all versions ≤ 2.2.0
Severity
- CVSS 4.0 Base Score: 9.3 (Critical)
- CVSS 4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1 Base Score: 9.1 (Critical)
- CVSS 3.1 Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Mitigation and recommended actions
- Immediate — upgrade: Update Vikunja to version 2.2.1 or later, which contains the vendor-provided fixes. Version 2.2.2 is also available and includes the complete set of security patches released in the same cycle.
- Fix for hash disclosure: the
ReadAllresponse now clears theHashfield alongside passwords. - Fix for attachment IDOR: attachment retrieval now enforces
WHERE id = ? AND task_id = ?, binding ownership to the supplied task.
- Fix for hash disclosure: the
- If patching is not immediately possible: Restrict public or externally accessible link sharing by disabling or auditing link share creation on the instance, and limit network access to the Vikunja API to trusted users only until the patch can be applied.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

