CVE-2026-33335Vikunja是一款开源的自托管任务管理平台。在0.21.0至2.2.0之前的版本中,其桌面版Electron包装器存在严重安全缺陷。该程序未对`window.open()`调用的URL进行验证或协议白名单限制,直接将其传递给`shell.openExternal()`。攻击者可利用带有`target="_blank"`属性的恶意链接诱导受害者点击,从而触发操作系统打开任意URI方案。这可能导致调用本地应用程序、打开本地文件或触发自定义协议处理程序,造成严重的安全风险。
该漏洞的核心在于Vikunja Desktop Electron客户端对跨域跳转请求的处理逻辑存在缺陷。Electron框架提供了`shell.openExternal()`API,用于在系统默认浏览器中打开外部链接。然而,在受影响版本中,应用程序直接将前端`window.open()`产生的URL传递给该API,未实施任何安全过滤。
正常情况下,应用应仅允许`http`、`https`等安全协议。但此处,攻击者可构造如`file:///`、`custom-scheme://`等恶意URI。当受害者在Vikunja界面点击攻击者插入的任务链接(设置`target="_blank"`)时,Electron主进程会捕获该请求并调用系统命令打开该URI。由于操作系统默认会根据URI scheme关联相应的处理程序,攻击者可借此调用计算器、邮件客户端,甚至通过特定应用的协议漏洞执行系统命令。该漏洞结合了客户端注入与社会工程学,无需服务器端权限即可实现攻击。