Skip to main content

Dashy EUVDEUVD-2026-44760

| CVE-2026-54443 MEDIUM
Basic XSS (CWE-80)
2026-07-15 GitHub_M
5.9
CVSS 4.0 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
5.9 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:L/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
vuln.today AI
6.9 MEDIUM

Feed-control prerequisite justifies AC:H; no Dashy privileges needed (PR:N); user click required (UI:R); javascript: executes in Dashy origin causing scope change (S:C) with session-level confidentiality impact (C:H).

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
A
Scope
X

Lifecycle Timeline

3
Patch available
Jul 15, 2026 - 21:18 EUVD
Source Code Evidence Fetched
Jul 15, 2026 - 19:01 vuln.today
Analysis Generated
Jul 15, 2026 - 19:01 vuln.today

DescriptionCVE.org

Dashy is a self-hostable personal dashboard. From 1.9.4 until 3.2.0, the Dashy RSS Widget in src/components/Widgets/RssFeed.vue does not sanitize RSS item link values before rendering feed item titles and Read More links as anchor href attributes, allowing an attacker-controlled feed to provide a javascript: URI that executes when clicked in the Dashy origin. This issue is fixed in version 3.2.0.

AnalysisAI

Stored XSS via unsanitized javascript: URI injection in the Dashy RSS Feed widget (src/components/Widgets/RssFeed.vue) affects all releases from 1.9.4 through 3.1.x, allowing an attacker who controls an RSS feed source configured in the dashboard to deliver a malicious anchor href that executes arbitrary JavaScript in the Dashy origin when a user clicks it. The attack requires both feed-source control and user interaction, and is confined to the Dashy application origin - meaning session tokens, cookies, or dashboard credentials are the primary targets. No public exploit has been identified at time of analysis, and the vulnerability is not listed in CISA KEV; a vendor-released patch is available in version 3.2.0.

Technical ContextAI

Dashy is a Vue.js-based self-hosted personal dashboard (CPE: cpe:2.3:a:lissy93:dashy:*:*:*:*:*:*:*:*). The vulnerable component, src/components/Widgets/RssFeed.vue, fetches user-configured RSS feeds and renders item links as raw anchor href attributes without validating or sanitizing the URI scheme. CWE-80 (Improper Neutralization of Script-Related HTML Tags in a Web Page - Basic XSS) describes this root cause: the application trusts feed-supplied content and writes it directly into the DOM as a href value. Modern browsers permit javascript: as a valid URI scheme in anchor elements and execute the URI payload synchronously in the page's scripting context when the link is activated. Because Dashy runs as a single-page application in the user's browser, successful execution grants the payload access to the full Dashy origin - including session storage, cookies, and any authenticated API calls the dashboard can make.

RemediationAI

Vendor-released patch: version 3.2.0. Upgrade to Dashy 3.2.0 immediately; the release is available at https://github.com/lissy93/dashy/releases/tag/3.2.0 and the fix addresses href sanitization in the RSS Feed widget. For deployments that cannot upgrade immediately, the most effective compensating control is to remove or disable any RSS Feed widgets that consume externally-hosted feeds, replacing them only with feeds served from internally-controlled infrastructure - this eliminates the attacker-controlled feed prerequisite entirely, though it reduces dashboard functionality. Alternatively, restricting the Dashy instance to trusted, authenticated users (e.g., behind VPN or SSO) limits the blast radius of any successful XSS by reducing the value of stolen session tokens. Note that browser-level Content Security Policy headers, if configurable via a reverse proxy in front of Dashy, can block javascript: URI execution as an additional layer, though this is a defense-in-depth measure rather than a primary fix.

Share

EUVD-2026-44760 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy