Skip to content
Noroxi
CVE-2026-69085· NVD / CVE Program· CNA VulnCheck

SiYuan before v3.7.3 SQL Injection via searchDocs

SiYuan before v3.7.3 contains a SQL injection vulnerability in the /api/filetree/searchDocs endpoint, where the caller-supplied keyword parameter is concatenated directly into SQL statements with no escaping or parameter binding. The endpoint is reachable by a publish RoleReader token, or unauthenticated when publish mode is enabled with Publish.Auth.Enable set to false. Because the statement executes on a read-write SQLite handle via a driver that supports stacked (semicolon-separated) statements, an attacker can read and modify database content across all cleartext (non-encrypted) notebooks on the instance.

CriticalCVSS 9.9 · v4.0—Proof of concept Fix available

Noroxi analysis

No Noroxi analysis for this record yet

We don't hand-write analysis for the hundreds of thousands of vulnerabilities in the database; that wouldn't be honest. For notable, high-impact vulnerabilities our team writes the mechanism, detection and remediation steps.

We use this product, ask for help
Published
Aug 3, 2026
Updated
Aug 26, 2026
EPSS
1.5% · 73th percentile
Follow this CVE

Sign in to follow · You’ll be notified if a followed record enters KEV, gets an exploit or is updated.

Report tools

JSON

Action score

39

Monitor

Low priority for now.

CVSS
39 / 40 · 9.9 / 10
CISA KEV
0 / 30 · Not listed
EPSS
0 / 30 · 1.5%

CISA SSVC decision

Exploitation
proof of concept
Automatable
yes
Technical impact
total

Vulnrichment: CISA's decision-tree inputs.

CNA vs NVD score

NVD
—
CNA · VulnCheck
9.9
NVD has not scored this yet; the score shown is the CNA’s.

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N

The score given by the assigning authority versus NVD’s independent score. A gap means the severity is contested.

Affected systems

—

Versions reported by the vendor

Affected version ranges reported by the assigning authority (VulnCheck). Independent of NVD's CPE analysis and usually ahead of it.

  • siyuan-note siyuan

    • 3.7.3not affected
    • before 3.7.3affected · semver

Other highest-scoring records for the same primary product.

  • CVE-2026-66012SiYuan before v3.7.2 Unauthenticated Administrator Takeover via MCP
    40Plan
  • CVE-2026-72811SiYuan before v3.7.4 SQL Injection via backlink search
    39Monitor
  • CVE-2026-69084SiYuan before v3.7.3 SQL Injection via searchEmbedBlock
    39Monitor
  • CVE-2026-69083SiYuan before v3.7.3 SQL Injection via fullTextSearchAssetContent
    39Monitor
  • CVE-2026-54158SiYuan: Stored XSS to RCE via attribute-view cell rendering in genAVValueHTML()
    39Monitor
  • CVE-2026-54067SiYuan: Stored XSS to RCE via CSS-snippet <style> breakout in renderSnippet()
    39Monitor

Remediation

Which version to upgrade to

Fix versions compiled from the vendor, package registries and Microsoft. Verify the vendor's note before upgrading.

Product / packageFixed versionSource
siyuan-note siyuan3.7.3Vendor (CNA)

Exploit status

Proof of concept available

A public proof of concept or detection signature exists. Exploit knowledge is out there; don't delay patching.

Evidence

  • Nuclei detection template ×1

Noroxi does not host or link to exploit code. Metasploit module names and Nuclei template ids are shown (names, not code); Exploit-DB entries and PoC repositories are given as counts only.

Public exploit evidence
SourceKindDate
Nuclei detection templateNuclei template CVE-2026-69085 —

Research context

For pentesters and researchers: attack profile, score disagreement, timeline, patch commits, credits, variant and chain candidates, bug bounty scope. All derived from existing data; no exploit code.

Timeline

From publication to today: proof of concept, Metasploit module, CISA KEV and fix record. Dates are as reported by the sources.

No dated events beyond publication.

EPSS, last 120 days+1% in 7 days

FIRST EPSS daily score; only changes of 0.01 or more are recorded (step chart).

Patch and commit links

Commit, PR and diff links among the references. A starting point for patch-diffing and variant hunting; fixes, not exploits.

No commit or PR link among the references.

Finders, reporters and analysts named in the CNA record. Click a name for that researcher’s other records.

Variant candidates

Same product, same weakness class, within 18 months. If the patch missed the root cause, the sibling bug is here.

  • CVE-2026-690830 days apartSiYuan before v3.7.3 SQL Injection via fullTextSearchAssetContent
    39Monitor
  • CVE-2026-690840 days apartSiYuan before v3.7.3 SQL Injection via searchEmbedBlock
    39Monitor
  • CVE-2026-7281111 days apartSiYuan before v3.7.4 SQL Injection via backlink search
    39Monitor
  • CVE-2026-728079 days apartSiYuan before v3.7.4 SQL Injection via queryBlocks template
    35Monitor
  • CVE-2026-8780737 days apartsiyuan before v3.8.2 SQL Injection via fullTextSearchBlock
    34Monitor
  • CVE-2026-10064454 days apartSiYuan before v3.8.4 SQL Injection via dailyNoteSavePath
    34Monitor

Chain candidates

An authentication bypass and a privilege-requiring bug in the same product, published close together: combined they may become an unauthenticated path.

—

Bug bounty scope

No known public program.

Source: bounty-targets-data (public HackerOne, Bugcrowd, Intigriti, YesWeHack listings).

Technical details

Attack conditions

  • Anyone who can reach it over the internet can trigger it.
  • No account or password is required.
  • No user action is required.
  • No special conditions are required; it is repeatable.

If successful

Confidentiality
Integrity
Availability
Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
X

CVSS vector

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

nvd-secondary

Root cause

The query text is built by concatenating user input. The database cannot tell where the data ends and the command begins.

A representative example of this vulnerability class. Not the vendor's source code; it shows the faulty pattern and its fix.

Vulnerable

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = '" + owner + "'");

Fixed

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = $1",  [owner]);

Change log

  1. Fix✗ → ✓

For records you follow, these changes also arrive as notifications. →

References

All records