Skip to content

XSS in workspace url parameter

Low
lissy93 published GHSA-58mp-4qr3-vmrc Jun 14, 2026

Package

npm dashy (npm)

Affected versions

<= 1.3.5

Patched versions

4.3.7

Description

Dashy’s workspace view trusts the url query parameter and puts it straight into an iframe.

PoC:

https://demo.dashy.to/workspace?url=javascript%3Aalert%28origin%29

Root cause

In src/views/Workspace.vue, getInitialUrl() returns the query value directly:

if (route.query && route.query.url) {
  return decodeURI(route.query.url);
}

That value is assigned on mount:

this.url = this.getInitialUrl();

Then src/components/Workspace/WebContent.vue uses it as the iframe source:

<iframe :src="url" allow="fullscreen; clipboard-write" />

Since there is no scheme validation before the value reaches the iframe.

Impact

If a logged-in user opens the crafted link, JavaScript runs on the Dashy origin. The payload can read same-origin browser data, interact with the Dashy DOM, and send requests as the victim.

Severity

Low

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Local
Attack complexity
Low
Privileges required
Low
User interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:L/I:L/A:N

CVE ID

CVE-2026-55592

Weaknesses

Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')

The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. Learn more on MITRE.

Credits