CVE-2026-33335 Overview
Vikunja is an open-source self-hosted task management platform. A vulnerability exists in the Vikunja Desktop Electron wrapper where URLs from window.open() calls are passed directly to shell.openExternal() without any validation or protocol allowlisting. This security flaw allows attackers to craft malicious links that, when clicked by victims, can invoke arbitrary URI schemes on the victim's operating system.
Critical Impact
An attacker who can place a link with target="_blank" (or that otherwise triggers window.open) in user-generated content can cause the victim's operating system to open arbitrary URI schemes, invoking local applications, opening local files, or triggering custom protocol handlers.
Affected Products
- Vikunja Desktop versions 0.21.0 through 2.1.x
- Vikunja Desktop Electron wrapper
Discovery Timeline
- 2026-03-24 - CVE-2026-33335 published to NVD
- 2026-03-25 - Last updated in NVD database
Technical Details for CVE-2026-33335
Vulnerability Analysis
This vulnerability is classified under CWE-939 (Improper Authorization in Handler for Custom URL Scheme). The Vikunja Desktop application, built on Electron, fails to implement proper validation when handling URLs that trigger external application launches. When the Electron application receives a window.open() call, it passes the URL directly to the operating system's shell.openExternal() function without performing any security checks on the URI scheme.
The lack of protocol allowlisting means that any URI scheme registered on the victim's system can be invoked, not just safe schemes like https:// or mailto:. This could allow attackers to trigger application-specific handlers, file protocol handlers, or other potentially dangerous URI schemes that could lead to code execution or information disclosure.
Root Cause
The root cause is the absence of input validation and URI scheme allowlisting in the Electron wrapper's URL handling logic. When processing window.open() requests, the application should validate that the target URL uses a safe protocol scheme before passing it to shell.openExternal(). Instead, the vulnerable versions pass all URLs directly to the operating system without any security filtering.
Attack Vector
An attacker can exploit this vulnerability by injecting malicious links into user-generated content within the Vikunja platform. When a victim using the Vikunja Desktop application clicks on such a link (one that contains target="_blank" or otherwise triggers window.open), their operating system will process the arbitrary URI scheme specified by the attacker.
Potential attack scenarios include:
- Invoking local file handlers (file://) to access sensitive files
- Triggering custom protocol handlers for installed applications
- Launching system utilities or scripts through registered URI schemes
- Exploiting vulnerabilities in other applications via their custom protocol handlers
This is a network-accessible attack that requires some user interaction (clicking a malicious link) and low privileges (ability to create content with links).
Detection Methods for CVE-2026-33335
Indicators of Compromise
- Unexpected application launches after clicking links within Vikunja Desktop
- Presence of suspicious links with unusual URI schemes in task descriptions or comments
- System logs showing shell.openExternal() calls with non-standard protocol schemes
- User reports of unexpected file access or application behavior when using Vikunja Desktop
Detection Strategies
- Monitor for outbound URI scheme invocations from the Vikunja Desktop application process
- Implement content filtering to detect and flag links with potentially dangerous URI schemes in Vikunja content
- Review application logs for window.open() calls with suspicious URL patterns
- Deploy endpoint detection rules to identify unusual process spawning from Electron-based applications
Monitoring Recommendations
- Enable verbose logging in the Vikunja Desktop application to track URL handling behavior
- Monitor endpoint telemetry for unexpected application launches correlated with Vikunja Desktop usage
- Implement network-level inspection to identify suspicious link patterns in Vikunja traffic
- Track user-generated content for links containing non-standard URI schemes
How to Mitigate CVE-2026-33335
Immediate Actions Required
- Upgrade Vikunja Desktop to version 2.2.0 or later immediately
- Audit existing user-generated content for suspicious links with unusual URI schemes
- Consider temporarily restricting link creation permissions until the patch is applied
- Alert users to exercise caution when clicking links within Vikunja until updates are deployed
Patch Information
Version 2.2.0 of Vikunja patches this issue by implementing proper URI scheme validation and protocol allowlisting before passing URLs to shell.openExternal(). The fix ensures that only safe, expected protocols are allowed to trigger external application launches.
For detailed patch information, see the GitHub Security Advisory and the Vikunja Release Changelog.
Workarounds
- Disable or remove the Vikunja Desktop application and use the web interface instead until patching is complete
- Implement network-level filtering to block or warn on links with dangerous URI schemes
- Restrict user permissions to prevent untrusted users from creating content with links
- Deploy browser/application isolation solutions to contain potential exploitation attempts
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

