| Package | Affected versions | Patched versions |
|---|---|---|
| code.vikunja.io/api | ≤ 0.24.6all versions | |
| vikunja | < 1.1.0 | 1.1.0 |
The task preview component creates a unparented div. The div's innerHtml is set to the unescaped description of the task
In the TaskGlanceTooltip.vue it temporarily creates a div and sets the innerHtml to the description here. 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.
<img src=x onerror="alert(localStorage.getItem('token'))">Any user on an instance can cause an XSS on another
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free