Cyber Posture

CVE-2026-33678

HighPublic PoC

Published: 24 March 2026

Published
24 March 2026
Modified
30 March 2026
KEV Added
Patch
CVSS Score 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
EPSS Score 0.0004 11.4th percentile
Risk Priority 16 60% EPSS · 20% KEV · 20% CVSS

Summary

CVE-2026-33678 is a high-severity Authorization Bypass Through User-Controlled Key (CWE-639) vulnerability in Vikunja Vikunja. Its CVSS base score is 8.1 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 11.4th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified are NIST 800-53 AC-3 (Access Enforcement) and AC-6 (Least Privilege).

Threat & Defense at a Glance

What attackers do: exploitation maps to Exploit Public-Facing Application (T1190) and 2 other techniques. What defenders deploy: see the NIST 800-53 controls recommended below.
Threat & Defense Details

Mitigating Controls (NIST 800-53 r5)AI

prevent

AC-3 requires enforcement of approved authorizations for accessing resources like attachments, directly preventing the bypass where attachments are loaded without task ID validation.

prevent

SI-10 mandates validation of information inputs such as attachment IDs against the task context, mitigating user-controlled key bypass via enumeration.

prevent

AC-6 enforces least privilege, limiting authenticated users' access to only necessary tasks and projects, reducing the scope of exploitable attachments.

MITRE ATT&CK Enterprise TechniquesAI

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1068 Exploitation for Privilege Escalation Privilege Escalation
Adversaries may exploit software vulnerabilities in an attempt to elevate privileges.
T1213 Data from Information Repositories Collection
Adversaries may leverage information repositories to mine valuable information.
Why these techniques?

Vulnerability is an IDOR/authz bypass in a self-hosted web app (Vikunja) allowing low-priv authenticated users to read/delete arbitrary attachments via manipulated IDs; directly enables exploitation of public-facing apps (T1190), exploitation for privilege escalation to unauthorized data (T1068), and collection from an information repository/task management system (T1213).

Confidence: MEDIUM · MITRE ATT&CK Enterprise v18.1

NVD Description

Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, `TaskAttachment.ReadOne()` queries attachments by ID only (`WHERE id = ?`), ignoring the task ID from the URL path. The permission check in `CanRead()` validates access to the task…

more

specified in the URL, but `ReadOne()` loads a different attachment that may belong to a task in another project. This allows any authenticated user to download or delete any attachment in the system by providing their own accessible task ID with a target attachment ID. Attachment IDs are sequential integers, making enumeration trivial. Version 2.2.1 patches the issue.

Deeper analysisAI

CVE-2026-33678 is a vulnerability in Vikunja, an open-source self-hosted task management platform. Prior to version 2.2.1, the `TaskAttachment.ReadOne()` function queries attachments solely by their ID (`WHERE id = ?`), disregarding the task ID from the URL path. While the `CanRead()` permission check validates access to the task in the URL, `ReadOne()` subsequently loads an attachment that may belong to a different task or project, enabling unauthorized access. This issue is classified under CWE-639 (Authorization Bypass Through User-Controlled Key) with a CVSS v3.1 base score of 8.1 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N).

Any authenticated user with low privileges can exploit this vulnerability over the network with low complexity and no user interaction required. By supplying a task ID they have legitimate access to alongside a target attachment ID, attackers can download or delete arbitrary attachments across the system. Since attachment IDs are sequential integers, brute-force enumeration is straightforward, allowing comprehensive access to sensitive files without needing elevated permissions.

The GitHub security advisory (GHSA-jfmm-mjcp-8wq2) and Vikunja changelog detail the patch in version 2.2.1, which fixes the query to properly incorporate the task ID for authorization enforcement. Users should upgrade to version 2.2.1 or later to mitigate the issue.

Details

CWE(s)

Affected Products

vikunja
vikunja
≤ 2.2.1

CVEs Like This One

CVE-2026-35595Same product: Vikunja Vikunja
CVE-2026-33316Same product: Vikunja Vikunja
CVE-2026-28268Same product: Vikunja Vikunja
CVE-2026-33668Same product: Vikunja Vikunja
CVE-2026-33680Same product: Vikunja Vikunja
CVE-2026-34727Same product: Vikunja Vikunja
CVE-2026-27819Same product: Vikunja Vikunja
CVE-2026-33679Same product: Vikunja Vikunja
CVE-2026-27616Same product: Vikunja Vikunja
CVE-2026-33335Same product: Vikunja Vikunja

References