CVE-2026-69083
Executive Summary
CVE-2026-69083 is a critical, unauthenticated SQL injection vulnerability in SiYuan, a widely used open-source note-taking and knowledge management application. The vulnerability resides in the fullTextSearchAssetContent endpoint and affects all versions prior to v3.7.3. An attacker can exploit this flaw to execute arbitrary SQL queries against the read-write asset-content database, allowing for the exfiltration, modification, or deletion of cross-notebook data, potentially compromising the entire knowledge base. With a CVSS score of 10.0, this vulnerability poses an immediate and severe threat to any internet-facing SiYuan instance.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability is a classic SQL injection (CWE-89) stemming from improper sanitization of parameters passed to the fullTextSearchAssetContent endpoint. This endpoint is designed to perform full-text searches across asset content, such as PDFs and other embedded files, within a user's notebooks.
The core issue involves the SQL query construction. The application takes user-supplied parameters that define the search term and any associated regular expression (REGEXP) clauses and concatenates them directly into the SQL statement without parameterization or escaping. Specifically, the REGEXP operator is dynamically constructed using the user's input, which is not sanitized.
An attacker can inject malicious SQL payloads through these unescaped parameters. Because the endpoint is reachable without authentication (and also through RoleReader tokens), the attack does not require any prior access. The injected payload can be crafted to leverage stacked queries or UNION-based injection to interact with other tables in the database.
The database in question is the "read-write asset-content database," which implies it holds not only the indexed content of assets (e.g., text extracted from PDFs) but also metadata and potentially references to the broader notebook structure. This database is not the main application database but holds a crucial subset of user data. The injection operates within this database context, meaning an attacker is limited to reading, modifying, or deleting data within this specific database, but they are not restricted by notebook boundaries.
The vulnerability's severity is amplified by several factors:
- Authentication Bypass: The endpoint is exposed to unauthenticated users, eliminating the need for credentials.
- No Input Sanitization: The application fails to use prepared statements or parameterized queries, relying instead on string concatenation.
- REGEXP Injection: The use of the REGEXP operator provides an additional injection vector, allowing attackers to influence the query structure even if other inputs are partially filtered.
- Data Integrity Impact: The
UPDATEandDELETESQL commands are likely permitted by the database user context, allowing for data destruction.
The attack surface is any SiYuan deployment that exposes its HTTP API to the network, whether on a local LAN or the public internet. Users who access their notes via the service's web interface provide the primary target vector.
Exploitation Scenarios
The exploitation of CVE-2026-69083 can be broken down into a clear, step-by-step attack chain. A public PoC exists, demonstrating the vulnerability is actively exploitable.
- Reconnaissance: The attacker identifies a target SiYuan instance. This can be done using Shodan or other internet-wide scanning tools with queries like
"SiYuan". The target's version and API accessibility are confirmed. - Initial Request: The attacker sends an HTTP request to the target. The request is crafted against the vulnerable endpoint, typically
/api/asset/fullTextSearchAssetContent(the exact path may vary slightly). The request includes the malicious payload as part of the search term or a REGEXP parameter. - SQL Injection: The web application receives the request and constructs an SQL query by concatenating the malicious input. An example payload might be injected into the
regexpparameter to break out of the intended query structure, e.g., injecting' OR 1=1 --or a more targeted payload like' UNION SELECT username, password FROM users --. - Data Exfiltration/Manipulation: The malicious SQL executes against the read-write asset-content database. The attacker uses the results to exfiltrate sensitive data (cross-notebook contents, file metadata, potentially stored credentials). In a destructive scenario, the attacker injects
DELETE FROM assets; --to wipe the asset index orUPDATEqueries to alter data, corrupting the integrity of the user's knowledge base. - Post-Exploitation: The attacker may use the SQL injection as a foothold to probe for further vulnerabilities, or they may leverage the stolen data for social engineering or account takeover if passwords are discovered.
Since no official exploit code is available, the public PoC is likely a script or a manual set of curl commands. The PoC confirms the injection point. While a Nuclei template is not available, the attack is simple enough to reproduce with HTTP clients or tools like sqlmap.
Impact Assessment
The vulnerability carries a maximum CVSS score of 10.0, categorizing it as Critical. The environmental factors contributing to this score are severe:
- Attack Vector (AV:N): Exploitable remotely over the network.
- Attack Complexity (AC:L): The attack has no special conditions; it can be executed repeatedly with consistent results.
- Privileges Required (PR:N): No authentication is required to exploit the flaw.
- User Interaction (UI:N): No user action is needed to trigger the vulnerability.
The scope is Changed (S:C), meaning the vulnerability compromises the confidentiality and integrity of resources beyond the immediate vulnerable component. For SiYuan users, this equates to complete compromise of the knowledge management system's data store.
The business impact is profound:
- Confidentiality Impact (C:H): All data from all notebooks and the asset database can be read, including proprietary research, personal notes, API keys, and potentially confidential client information.
- Integrity Impact (I:H): Attackers can modify or delete any entries in the asset-content database. This can result in a corrupted knowledge base, a loss of trust in the data, or a denial of service for the user.
- Availability Impact (A:N): The CVSS vector indicates no direct impact on availability. However, in a data-loss scenario, the lack of data availability is an indirect outcome.
The blast radius includes any individual or enterprise using SiYuan. This is particularly significant for organizations that use SiYuan for collaborative research or as a centralized wiki. The attack does not require any internal network position, making any exposed instance a critical risk.
Detection Guidance
Sigma Rule
title: SiYuan SQL Injection Attempt via fullTextSearchAssetContent
id: 3f8c9b2a-7e5d-4a1c-9b3f-6c1a8e9d2b45
status: experimental
description: Detects potential SQL injection attempts against SiYuan's fullTextSearchAssetContent endpoint.
logsource:
category: webserver
product: nginx
service: http
detection:
selection:
cs-method:
- 'POST'
- 'GET'
cs-uri-query|c contains:
- 'fullTextSearchAssetContent'
sc-status: 200
keywords:
- 'UNION SELECT'
- 'OR 1=1'
- 'REGEXP'
- 'SELECT * FROM'
- 'DELETE FROM'
- '--'
- ';'
condition: selection and keywords
falsepositives:
- Legitimate use of REGEXP in search queries
level: high
YARA Rule
rule SiYuan_SQLi_Exploit
{
meta:
description = "Detects payloads targeting CVE-2026-69083 in HTTP requests"
author = "Valter Security Research"
date = "2026-01-17"
reference = "CVE-2026-69083"
hash1 = "some-hash-of-known-payload"
strings:
$s1 = "fullTextSearchAssetContent" ascii wide nocase
$s2 = "UNION" ascii wide nocase
$s3 = "SELECT" ascii wide nocase
$s4 = "REGEXP" ascii wide nocase
$s6 = "DELETE FROM" ascii wide nocase
$s7 = "1=1" ascii wide
$s8 = "--" ascii wide
condition:
uint16(0) == 0x0D0A and $s1 and 2 of ($s2, $s3, $s4, $s6, $s7, $s8)
}
Suricata IDS Rule
alert http any any -> $HOME_NET any (msg:"ET EXPLOIT SiYuan fullTextSearchAssetContent SQL Injection Attempt"; flow:established,to_server; content:"fullTextSearchAssetContent"; http_uri; pcre:"/UNION\s+SELECT|OR\s+1=1|REGEXP.*(SELECT|INSERT|UPDATE|DELETE)/i"; classtype:web-application-attack; sid:20269083; rev:1; metadata:created_at 2026_01_17, updated_at 2026_01_17;)
Elastic Detection
sequence by source.ip with maxspan=5s
[any where process.name == "nginx" or process.name == "httpd"
and network.direction == "ingress"
and http.request.body.text contains "fullTextSearchAssetContent"
and http.request.body.text regexp ".*(UNION|SELECT|DELETE|REGEXP).*"]
[any where process.name == "nginx" or process.name == "httpd"
and network.direction == "egress"
and http.response.status_code == 200]
Splunk SPL Query
index=web sourcetype=access_combined
| where like(uri, "%fullTextSearchAssetContent%")
| regex _raw="(UNION\s+SELECT|OR\s+1=1|DELETE\s+FROM|REGEXP.*SELECT|--|\;)"
| eval threat_severity = "high"
| table _time, clientip, method, uri, url, status, bytes
Wazuh OSSEC Rule
<group name="siyuan,">
<rule id="929213" level="10">
<decoded>json</decoded>
<field name="url">fullTextSearchAssetContent</field>
<regex>(UNION|SELECT|DELETE|OR 1=1|--|;)</regex>
<description>SiYuan CVE-2026-69083 SQl Injection Attempt Detected.</description>
<group>attack,sql_injection,</group>
</rule>
</group>
Mitigation & Patch Guidance
As of this writing, the vulnerability is UNPATCHED (Patch Confidence: 0/4). There is no official fix or vendor advisory confirming a patched version. The vendor has not released a fix. Immediate action is required to mitigate the risk.
- Immediate Mitigations:
- Restrict Network Access: If SiYuan does not need to be publicly accessible, block all external access. Use firewalls or security groups to limit access to trusted IP addresses or internal networks only.
- Disable the Endpoint: Implement a Web Application Firewall (WAF) rule to block requests containing
fullTextSearchAssetContent. This is a stop-gap measure but will disrupt any exploitation attempts. - Authentication Enforcement: If possible, enforce authentication for all API requests. However, note that this vulnerability can be triggered by
RoleReadertokens, so strict authentication alone may not be sufficient. Disable any anonymous access modes.
- Patch/Upgrade Steps:
- Monitor for Vendor Updates: Continuously monitor the official SiYuan GitHub repository and community channels for a security-fix release. The fixed version is expected to be v3.7.3 or later.
- Upgrade: Once the vendor releases a patched version (v3.7.3+), upgrade all instances immediately.
- Long-Term Hardening:
- Input Validation: Ensure all future code development for SiYuan adheres to the principle of using parameterized queries or prepared statements to prevent SQL injection, as this is not an isolated pattern issue.
- Least Privilege: The database user used by SiYuan should have the minimal privileges necessary. Restrict the ability to
UPDATEorDELETEon the asset-content database if possible. - Web Application Firewall: Deploy a WAF in front of SiYuan to provide an extra layer of defense against a range of web attacks.
- Security Audits: Conduct regular security audits and penetration tests of the SiYuan deployment to ensure no similar vulnerabilities are overlooked in other components.
References
There is currently no evidence that CVE-2026-69083 has been exploited in the wild; it is not listed on the CISA Known Exploited Vulnerabilities (KEV) catalog. However, the vulnerability has a Public PoC, meaning technical details and a proof-of-concept are circulating in the security community. This significantly increases the risk of opportunistic exploitation by threat actors.
The attacker profile is likely broad, including:
- Cybercriminals: Looking to steal sensitive data or deploy ransomware after compromising a system. The data exfiltration capability makes it a high-value target.
- Hacktivists: Seeking to deface or delete data from organizations they target, using the destructive capabilities of the SQL injection.
- Opportunistic Scanners: Automated botnets that continuously scan for known vulnerable applications. The availability of a public PoC will soon lead to automated exploitation attempts.
In the absence of a patch, the SiYuan project is at risk of being targeted by a wave of exploitation events. Security teams should consider this an "emerging active threat" and prioritize monitoring and logging to detect any suspicious activity.
References
- NVD Entry for CVE-2026-69083 (nvd.nist.gov)
- SiYuan Official GitHub Repository (github.com/siyuan-note/siyuan) - Release notes for forthcoming patch.
- SiYuan Community Security Forum (forum.siyuan-note.com) - Discussions regarding the vulnerability.
- Public PoC Repository (Researcher Blog/Monitor) - Proof of concept exploit details.
- FIRST.org EPSS Score Repository (first.org) - For future scoring updates.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.