SiYuan Publish Mode: Unauthenticated SQL Injection via fullTextSearchAssetContent (CVE-2026-69083, CVSS 10.0)
What happened
A GitHub Security Advisory (GHSA-fph3-ghq9-vw66) discloses two SQL flaws in SiYuan's /api/search/fullTextSearchAssetContent endpoint, tracked as CVE-2026-69083 with a reported CVSS of 10.0 and a public proof-of-concept. According to the advisory, the endpoint is reachable by any publish-mode RoleReader token, and by fully anonymous requests when Publish.Auth.Enable is set to false.
The advisory describes two distinct issues on the same endpoint:
- Method 2 (raw SQL): a client-supplied SQL statement is passed directly to the read-write asset-content database, without the single-statement or read-only guard that its sibling endpoint (
fullTextSearchBlock) enforces, and without the admin-role restriction that sibling applies to the same SQL method. - Method 3 (REGEXP injection): a client-supplied expression is concatenated unescaped into a
REGEXPSQL clause, allowing single-quote breakout, whereas the analogous block-search code path does escape quotes.
Per the advisory, both paths execute against a read-write database handle via a SQLite driver fork capable of statement stacking and ATTACH, and the asset-content store spans notebooks. A post-query access filter (FilterAssetContentByPublishAccess) runs only after the SQL executes, so it does not constrain what the query itself can do.
Why it matters
This affects any SiYuan deployment exposing its Publish feature (github.com/siyuan-note/siyuan/kernel). The advisory states that no admin role or normal write permission is required — a publish reader, or an anonymous visitor if publish auth is disabled, can reportedly run arbitrary SQL and inject through the REGEXP clause. Stated impact includes cross-notebook disclosure of asset-content data and, via the read-write handle and statement stacking, modification of database content and access to files reachable via ATTACH. The advisory notes code execution is not reachable in the default build since load_extension is unavailable. Given the reported unauthenticated reachability and public PoC, this warrants prompt attention for any internet-facing SiYuan publish instance.
What defenders should do now
- Identify any SiYuan instances with Publish mode enabled, especially those with
Publish.Auth.Enableset tofalse, and treat them as exposed until patched. - Watch outbound/inbound traffic and application logs for POST requests to
/api/search/fullTextSearchAssetContent, particularly ones supplying amethodvalue of2or3, or containing SQL-like content (quotes,UNION,ATTACH, stacked statements) in thequeryfield. - Where feasible, restrict or disable public access to the publish surface until a fix is applied, and review whether asset-content data may need to be treated as exposed.
- Track vendor guidance for a patch; the advisory's suggested fix is to apply the same admin-role and read-only/single-statement guards used by
fullTextSearchBlock, and to escape quotes in the REGEXP builder as its sibling function already does. - Monitor NVD for the CVE-2026-69083 record to confirm affected version ranges and any official fix version once published.
Developing intel
This is a same-day advisory and details may evolve as the vendor responds and as the CVE record is enriched. This note is based solely on the GHSA disclosure; check the original advisory for the latest status, affected versions, and remediation guidance: GHSA-fph3-ghq9-vw66.