CVE-2026-25935
published 2026-02-11CVE-2026-25935: 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…
PriorityP427medium5.4CVSS 3.1
AVNACLPRLUIRSCCLILAN
EPSS
0.23%
13.4th percentile
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.
Affected
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| code.vikunja.io | api | 0 – 0.24.6 | — |
| go-vikunja | vikunja | < 1.1.0 | 1.1.0 |
| vikunja | vikunja | < 1.1.0 | 1.1.0 |
CVSS provenance
nvdv3.15.4MEDIUMCVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
nvdv4.08.6HIGHCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
osv·2026-02-17
CVE-2026-25935 Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
Vikunja Vulnerable to XSS Via Task Preview in code.vikunja.io/api
OSV
Vikunja Vulnerable to XSS Via Task Preview
osv·2026-02-11
CVE-2026-25935 [HIGH] Vikunja Vulnerable to XSS Via Task Preview
Vikunja Vulnerable to XSS Via Task Preview
### 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: ``
4. Share the project with any permiss
GHSA
Vikunja Vulnerable to XSS Via Task Preview
ghsa·2026-02-11
CVE-2026-25935 [HIGH] CWE-79 Vikunja Vulnerable to XSS Via Task Preview
Vikunja Vulnerable to XSS Via Task Preview
### 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: ``
4. Share the project with any permiss
No detection rules found.
No public exploits indexed.
2026-02-11
Published