A stored cross-site scripting flaw in SiYuan's PDF annotation handling lets attacker-supplied markup execute as script with full Node.js access, escalating to remote code execution when a victim opens an annotated PDF.
What Is It
SiYuan versions before v3.7.4 fail to validate or escape annotation fields written to disk by the setFileAnnotation endpoint. An attacker can inject malicious markup into those annotation fields. When a user later opens the annotated PDF, the injected content executes as script inside the PDF renderer; a context that carries full Node.js access, turning a classic stored XSS (CWE-79) into code execution on the host.
The flaw is tracked as CVE-2026-73041, disclosed via VulnCheck, and carries a CVSS 3.1 base score of 9.0 (Critical) with the vector CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H. A CVSS 4.0 score of 9.4 (Critical) is also assigned.
Why It Matters
The attack is network-reachable, low-complexity, and requires only low privileges; the attacker needs enough access to write an annotation, not administrative control. User interaction is required but passive: simply opening an annotated PDF is enough to trigger execution.
Because the payload lands in the PDF renderer with Node.js privileges, the scope is changed: the impact escapes the browser-style sandbox and reaches the underlying system, with high confidentiality, integrity, and availability impact both to the vulnerable component and to downstream systems.
The persistence model matters too: annotations are written to disk, so the payload survives until the file is opened, and any user who opens that document is a target.
What's Vulnerable
- Vendor/product: siyuan-note / SiYuan
- Package:
pkg:golang/github.com/siyuan-note/siyuan/kernel - Affected versions: all versions before v3.7.4
- Not affected: v3.7.4 and later
- Entry point: the
setFileAnnotationendpoint
Patch Status
Upgrade to SiYuan v3.7.4 or later, which is marked unaffected. This CVE does not currently appear in the CISA KEV catalog, so no federally mandated remediation deadline applies. KEV listing reflects exploitation that CISA has confirmed and chosen to publish, so its absence is not evidence that exploitation is not occurring; only that none has been confirmed and catalogued to date. The NVD record status is Received, meaning analysis is still pending and details may be revised.
Sources
- NVD, CVE-2026-73041: https://nvd.nist.gov/vuln/detail/CVE-2026-73041
- GitHub Security Advisory GHSA-fqpw-c3pj-w8g9: https://github.com/siyuan-note/siyuan/security/advisories/GHSA-fqpw-c3pj-w8g9
- VulnCheck Advisory; SiYuan Remote Code Execution via PDF Annotations: https://www.vulncheck.com/advisories/siyuan-before-remote-code-execution-via-pdf-annotations