Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
02 / AFFECTED SOFTWARE
Affected packages
37 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
Vikunja is a todo-app to organize your life. Prior to 1.1.0, TaskGlanceTooltip.vue temporarily creates a div and sets the innerHtml to the description. Since there is no escaping on either the server or client side, a malicious user can share a project, create a malicious task, and cause an XSS on hover. This vulnerability is fixed in 1.1.0.
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
### Summary The task preview component creates a unparented div. The div's `innerHtml` is set to the unescaped description of the task ### Details In the `TaskGlanceTooltip.vue` it temporarily creates a div and sets the `innerHtml` to the description [here](https://github.com/go-vikunja/vikunja/blob/cdca79032526966cb248b72bddcf2a0f888c8a8f/frontend/src/components/tasks/partials/TaskGlanceTooltip.vue#L118). Since there is no escaping on either the server or client side, a malicious user can share a project, create a malicious task, and cause an XSS on hover. ### PoC 1. Create a project 2. Create a task with any description 3. Use the api to update the task with a description containing unescaped HTML (ex: `<img src=x onerror="alert(localStorage.getItem('token'))">` 4. Share the project with any permission level 5. Send malicious project to user and ask them to view task ### Impact Any user on an instance can cause an XSS on another
05 / REFERENCES
Further evidence
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25935.json
- https://github.com/go-vikunja/vikunja/commit/dd0b82f00a8c9ded1c19a1e643a197c514be6d37
- https://github.com/go-vikunja/vikunja/releases/tag/v1.1.0
- https://github.com/go-vikunja/vikunja/security/advisories/GHSA-m4g2-2q66-vc9v
- https://nvd.nist.gov/vuln/detail/CVE-2026-25935
- https://vikunja.io/changelog/vikunja-v1.1.0-was-released
- https://github.com/go-vikunja/vikunja