Skip to main content

gosuki EUVDEUVD-2026-100713

| CVE-2026-104587 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-13 cve@mitre.org GHSA-vfxj-r6f4-qcvw
5.4
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Access local web UI as low-priv user
  2. Delivery
    Store bookmark with attribute-breaking URL payload
  3. Exploit
    Victim opens bookmarks page
  4. Execution
    Unescaped URL/DisplayURL renders in browser
  5. Impact
    Injected JavaScript executes in victim context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that an attacker-controlled bookmark (specifically a crafted URL or DisplayURL value containing an HTML attribute-breaking payload) be stored in gosuki and then rendered by the vulnerable internal/webui/templates/bookmarks.html page, which uses Go's text/template (no context-aware auto-escaping) instead of html/template. LIMITING FACTORS: the attacker needs the ability to inject/store a bookmark (CVSS PR:L implies low-privilege authenticated access to the local interface), the victim must actually view the bookmarks page in a browser (UI:R), and the impact is confined to the victim's browser session (S:C, C:L/I:L, no availability impact). Because gosuki is a locally hosted, typically single-user bookmark/sync tool, realistic risk depends on whether untrusted bookmark data (e.g., synced or shared bookmarks) can reach the interface rendered to another user.

Impact

This is a moderate-severity stored XSS (CVSS 5.4, CWE-79) with signals that collectively point to LOW real-world urgency. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N indicates network-reachable, low-complexity exploitation but requires some privilege (PR:L - authentication requirements per the vector are authenticated/low-privilege) and victim interaction (UI:R), with a scope change (S:C) reflecting that injected script executes in the victim's browser context rather than the server's. EPSS is low at 0.23% (13th percentile), the CVE is NOT on CISA KEV, and no vendor-confirmed exploit flag was supplied. Per precision rules with no KEV and no explicit POC flag in the input, exploitation status is 'no public exploit identified at time of analysis'; HOWEVER, a dedicated researcher repository (github.com/AmalJafarzade/CVE-2026-104587) is referenced and very likely contains a proof-of-concept or write-up - this should be verified, as it may raise effective POC availability. No SSVC decision data was provided. Overall: signals are internally consistent (low EPSS, no KEV, moderate CVSS, privilege+interaction gating), so this is a genuine-but-low-priority defect, not a high-urgency threat - characteristic of a self-hosted, single-user local tool rather than mass-exploitable infrastructure.

Exploit ScenarioDerived

An attacker crafts a bookmark whose URL or DisplayURL field embeds an HTML attribute-breaking payload (e.g., breaking out of an href attribute to inject an event handler). When this malicious bookmark is stored and later rendered in gosuki's local web interface, the text/template engine emits it without context-aware escaping, and the victim's browser executes the attacker's JavaScript in the session context of the local UI. A likely proof-of-concept exists in the referenced researcher GitHub repository, though it is not independently confirmed here.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 15, 2026

Stored cross-site scripting in blob42 gosuki (all versions up to and including commit 6e2bf34) allows an authenticated attacker (low-privilege, PR:L per the CVSS vector) to inject a crafted bookmark URL or DisplayURL value that executes arbitrary JavaScript in a victim's browser when the local bookmark list page is rendered. The vulnerability is rated CVSS 3.1 5.4 (AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N, CWE-79), with EPSS at 0.23% (13th percentile), no CISA KEV entry, and no public exploit identified at time of analysis. Impact is confined to the victim's browser session (low confidentiality and integrity, no availability effect), and exploitation depends on malicious bookmark data being stored and then viewed by a user in the affected web interface.

RemediationAI

No vendor-released patch identified at time of analysis - the upstream project reference (https://github.com/blob42/gosuki) points to the repository rather than a tagged fix, and the advisory reference in the feed is the NVD entry (https://nvd.nist.gov/vuln/detail/CVE-2026-104587) rather than a patched release. The definitive code-level fix is to render internal/webui/templates/bookmarks.html with Go's html/template instead of text/template so URL and DisplayURL values receive context-aware HTML attribute escaping; until an upstream release includes that change, upgrade only to a build confirmed to carry the template swap. Compensating controls, with their trade-offs: restrict network reachability of the gosuki web UI so it binds only to localhost and is reachable solely through an SSH tunnel or local reverse proxy (reduces remote attack surface but does not stop a local or synced malicious bookmark from firing); do not import, sync, or accept bookmarks from untrusted or shared sources into the instance, and audit existing bookmarks for suspicious quote/scheme fragments such as javascript: URLs or unescaped double/single quotes in the URL or DisplayURL fields (prevents the stored payload from existing, but requires manual curation and may break legitimate sync workflows); and view the bookmarks page only in a dedicated, cookie-isolated browser profile that holds no authenticated sessions to other services (contains the blast radius of the scope change, at the cost of inconvenience). No public proof-of-concept exploitation has been confirmed in the provided intelligence, and EPSS remains low (0.23%), so remediation can be prioritized as moderate rather than emergency.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is a template-escaping failure classed as CWE-79 (Improper Neutralization of Input During Web Page Generation, i.e., cross-site scripting). gosuki's internal web UI renders the bookmark list via internal/webui/templates/bookmarks.html using Go's text/template package, which performs no context-aware auto-escaping; the Go standard library's html/template package is the context-sensitive equivalent that would HTML-escape URL and DisplayURL values and neutralize attribute-breaking sequences. Because the bookmark URL and DisplayURL fields are interpolated into an HTML attribute context without escaping, a payload containing quote characters can break out of the attribute and inject arbitrary script into the rendered page - a stored XSS condition (the malicious value persists as bookmark data and fires for any user who loads the bookmarks view). The CVSS scope change (S:C) reflects that the injected script executes in the victim's browser security context rather than merely affecting the vulnerable component. No CPE identifiers were supplied in the intelligence feed and EUVD lists affected version data as 'n/a n/a'; however, the description pins the affected code state to commit 6e2bf34 of the blob42/gosuki repository, and a reference list entry points to a GitHub repository named for this CVE alongside the upstream project at https://github.com/blob42/gosuki.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Stored XSS requires storing a bookmark (PR:L) and a victim viewing the page (UI:R); script runs cross-context in the browser (S:C) with limited C/I and no availability impact.

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

2
CVSS changed
Oct 15, 2026 - 15:22 NVD
5.4 (MEDIUM)
CVE Published
Oct 13, 2026 - 21:17 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

blob42 gosuki through commit 6e2bf34 contains a Stored Cross-Site Scripting (XSS) vulnerability. The application uses text/template instead of html/template, failing to perform context-aware auto-escaping on the URL and DisplayURL fields of bookmarks in internal/webui/templates/bookmarks.html. An attacker can craft a malicious bookmark URL containing HTML attribute-breaking payloads that execute arbitrary JavaScript in the victim's browser context when rendered in the local web interface.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Rare
niche self-hosted open-source bookmark manager, negligible enterprise footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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