Safeguard
Vulnerability Analysis•

CVE-2026-32751: Critical Stored XSS in SiYuan Mobile File Tree

CVE-2026-32751 is a stored XSS in the SiYuan mobile file tree that reaches code execution in Electron. Upgrade to SiYuan 3.6.1 on every device.

Safeguard Security Team
2 min read

CVE-2026-32751 is a critical stored cross site scripting flaw in SiYuan, scored CVSS 9.0. A notebook name rendered without escaping in the mobile file tree can run script, and because Electron allows Node.js access that becomes code execution. Upgrade to SiYuan 3.6.1.

What's affected

The NVD record says SiYuan 3.6.0 and below are affected. The GitHub advisory lists affected versions as 3.5.9 and below. Either way, the patched version is 3.6.1, so treat anything older as in scope.

The mobile layout is also used in the Electron desktop app when the window is narrow, so the NVD record says desktop users can be exposed too.

The attacker needs an account that can rename notebooks.

How to check if you're exposed

Check your SiYuan version in the About page and compare it with 3.6.1.

Then consider who can rename notebooks on your instance. On a single user install that is only you. On a shared or published workspace, every user with that right counts.

Look at notebook names for unexpected markup such as angle brackets or script text.

What to do now

  1. Upgrade SiYuan to 3.6.1 or later on every device, including mobile and desktop.
  2. Limit notebook rename rights to people you trust.
  3. Check existing notebook names for odd characters and rename any that look wrong.
  4. Review sessions and tokens if an untrusted person ever had a rename right.

Why it matters

The class is CWE-79, cross site scripting. The advisory says the mobile file tree wrote the notebook name into the page with innerHTML and no escaping, while the desktop file tree escaped the same value. One path was safe, and the sibling was not.

The severity is high because of how Electron is set up. The advisory says nodeIntegration is on and contextIsolation is off, so injected script has full Node.js access and can run commands on the machine. A web bug in an app like this is a local code execution bug. The record's KEV flag is false.

Quick check

Why is XSS rated this high here?

Because the Electron configuration gives page script access to Node.js, which turns script injection into code execution.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.