CVE-2026-93591: SiYuan before 3.8.3 SQL Injection via unescaped tag in graph.go

Published Sep 18, 2026
·
Updated

SiYuan versions before 3.8.3 contain an SQL injection vulnerability in the graph.go query2Stmt function where tag values are concatenated raw into SQL string literals without escaping single quotes. A publish-mode reader or anonymous visitor can inject SQL via inline HTML span tags in the getGraph endpoint to execute arbitrary queries on the read-write database and exfiltrate private data across notebooks.

Affected Software

1 affected component
SiYuan SiYuan<3.8.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade SiYuan to a version that resolves this vulnerability.

    Fixed in 3.8.3
  2. Compensating control

    Restrict access to the getGraph endpoint so publish-mode readers/anonymous visitors cannot reach it, reducing exposure to the graph.go SQL injection.

Event History

Sep 18, 2026
CVE Published
via MITRE·01:20 PM
Data Sourced
via MITRE·01:20 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

A publish-mode reader or an anonymous visitor can exploit it through the getGraph endpoint. The attacker does not need user interaction, but the supplied severity vector indicates low privileges are required.

2

What is required to trigger the SQL injection?

The attacker needs to provide a crafted inline HTML span tag whose tag value contains SQL syntax, including a single quote. That value reaches the graph.go query2Stmt function and is concatenated into an SQL string literal without escaping.

3

What data or systems are at risk?

Successful exploitation can execute arbitrary queries against the read-write database and exfiltrate private data across notebooks. Confidentiality impact is rated high, with low integrity and availability impact.

4

Which versions need remediation?

SiYuan versions before 3.8.3 are affected. Updating to version 3.8.3 or later removes the affected version range identified in the advisory.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203