External risk intelligence

SiYuan Stored XSS in confirmDialog Via Package and Notebook Names.

CVE advisorySeverity: CRITICAL (CVSS 9.3)

CVE-2026-82653

SiYuan is a personal knowledge management tool typically run as a local desktop application or a private, self-hosted service for individual use. The vulnerability requires user interaction to execute malicious payloads, and the software is not designed as a public-facing internet service or gateway.

Cross-site Scripting

Halo Surface Signal: 1 out of 5 — much less likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a stored cross-site scripting vulnerability in SiYuan, a personal knowledge management application. The flaw allows for the execution of malicious scripts within a user's browser when performing specific actions, such as managing packages or notebooks. The main concern is confirming the relevance and exposure of this vulnerability within our environment.

  • Stored scripts can run in user browsers.
  • Malicious package names can trigger code execution.
  • Confirm relevance and exposure within our systems.

Attack Path

How an attacker could exploit the issue

Attackers can exploit this vulnerability by submitting specially crafted package or notebook names containing HTML and script code. These malicious names are processed by the `confirmDialog()` function, which directly interpolates them into web page content. When a user interacts with these packages, such as by uninstalling them or unlocking encrypted notebooks, the embedded malicious code executes in their browser.

  • Requires authenticated user access.
  • Triggered by package/notebook name processing.
  • Leads to arbitrary script execution in user browsers.

Live Threat

Current exploitation, exposure, and threat context

This vulnerability could expose users to malicious code execution within their browser when interacting with SiYuan. An attacker could craft a malicious bazaar package with a specially named package or notebook. When a user performs actions such as uninstalling packages or unlocking encrypted notebooks, the embedded malicious script could run in the user's browser, potentially impacting their session or local data.

  • User browser session data.
  • Malicious package names trigger scripts.
  • Compromised user session.

Operational Fix

Recommended remediation, mitigation, and detection steps

SiYuan's stored cross-site scripting vulnerability necessitates action from teams responsible for application-level security and user-facing components. The first practical step is to identify all instances of SiYuan, determine their accessibility and business criticality, and then locate the accountable owner for remediation planning.

  • Identify SiYuan owners and assets.
  • Verify user exposure and criticality.
  • Plan and coordinate remediation efforts.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is SiYuan?

SiYuan is a personal knowledge management tool that helps users organize information, notes, and digital content. It is typically deployed as a local desktop application or a private, self-hosted service, allowing individuals to manage their own knowledge bases securely on their own hardware or private cloud environments.

How does CVE-2026-82653 work?

This vulnerability is a stored cross-site scripting (XSS) flaw, categorized as CWE-79. It occurs because the software's confirmDialog() function improperly handles text input. Specifically, it takes unescaped package or notebook names and inserts them directly into the application's internal web page structure, which allows malicious scripts embedded in those names to run as if they were legitimate code.

What triggers this vulnerability?

An attacker must create a malicious bazaar package or notebook with a name containing a hidden script payload. The code only executes when a user performs a specific action, such as uninstalling that package or unlocking an encrypted notebook. Simply viewing a list of items or browsing the application without triggering these specific dialog actions does not initiate the malicious script.

Why is this considered an external risk?

While Halo Surface Signal notes that SiYuan is typically a private tool rather than a public-facing gateway, the vulnerability is classified as external because the attack vector is network-based. Because it relies on user interaction—such as downloading or interacting with external bazaar packages—the risk level depends on how users connect their instances to external repositories or content sources.

How do I address this SiYuan vulnerability?

The primary step is to identify all SiYuan installations within your environment and confirm who owns or manages each instance. Once identified, ensure the software is updated to version 3.8.1 or later. Since the issue stems from how the application processes package and notebook names, maintaining up-to-date, patched software is the standard method for ensuring the confirmDialog() function correctly sanitizes input.

References