CVE-2026-25935
mediumpriority · track · 22EPSS 0.003 · 18 %ileEUUSEPSS · scored 2026-10-27
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–high · 5.4–8.6
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (4)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-m4g2-2q66-vc9vVikunja Vulnerable to XSS Via Task Preview2026-02-11ghsa · osvUS
### 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
- GO-2026-4480Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api2026-02-17vendor · osvUS
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (13)
External citations — patches, advisories, analysis.
- https://github.com/go-vikunja/vikunja/commit/dd0b82f00a8c9ded1c19a1e643a197c514be6d37cnnvd
- https://github.com/go-vikunja/vikunja/releases/tag/v1.1.0cnnvd
- https://github.com/go-vikunja/vikunja/security/advisories/GHSA-m4g2-2q66-vc9vcnnvd
- https://vikunja.io/changelog/vikunja-v1.1.0-was-releasedcnnvd
- https://vikunja.io/docs/installing/Patchcnnvd
- https://github.com/go-vikunja/vikunja/commit/dd0b82f00a8c9ded1c19a1e643a197c514be6d37enisa_euvd
- https://github.com/go-vikunja/vikunja/releases/tag/v1.1.0enisa_euvd
- https://github.com/go-vikunja/vikunja/security/advisories/GHSA-m4g2-2q66-vc9venisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan