Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain publish-reader access or find publish auth disabled
-
ExploitSend crafted /api/icon/getDynamicIcon request
-
ExecutionInject uncapped Sprig 'until' template function
-
ImpactKernel exhausts memory and is OOM-killed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the attacker to be able to reach the /api/icon/getDynamicIcon endpoint and supply a malicious Sprig template in the content parameter. In the default configuration a publish-reader-level account is needed (PR:L); the limiting factor is that SiYuan's publishing/sharing feature must be in use and the attacker must hold at least reader access to a published workspace. If the administrator has disabled publish authentication, this limiting factor is removed and any remote unauthenticated user can trigger it. The vulnerability is network-reachable with low complexity and no user interaction, but is gated by exposure of the publish interface to the attacker and by the absence of the function-map restriction present in 3.8.6+. |
| Impact | This is a denial-of-service vulnerability (CWE-770, uncontrolled resource consumption) rather than a code-execution or data-exposure flaw. The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H) is internally consistent with the description: network-reachable, low complexity, requires low privileges (a publish reader), no user interaction, and the only impact is high availability loss - confidentiality and integrity are untouched. The 7.1 score is driven entirely by the VA:H availability impact. No EPSS probability, KEV listing, or SSVC decision point was supplied, and there is no indication of a public proof-of-concept, so the real-world exploitation likelihood cannot be quantified from the inputs - treat the absence of these signals as missing data, not as evidence of low risk. One important nuance: the CVSS vector encodes PR:L (authenticated low-privilege), but the description states exploitation is possible by 'anyone when publish auth is disabled,' meaning in that non-default configuration the effective requirement drops to PR:N. Overall this is a genuine but bounded operational risk - a single request can crash the kernel - yet it is a self-hosted note-taking application, not internet-scale infrastructure, so it is a patch-promptly issue rather than an emergency for most deployments. |
| Exploit ScenarioDerived | An attacker holding publish-reader access to a self-hosted SiYuan instance (version 3.1.12 up to but not including 3.8.6) sends a single crafted request to /api/icon/getDynamicIcon whose content parameter contains a Sprig template invoking an uncapped function such as 'until', forcing the kernel to allocate unbounded memory until the OS OOM-killer terminates the process. If publish authentication has been disabled, any unauthenticated remote user can do the same. No public exploit code was identified at time of analysis, though the technique is straightforward given the detailed advisory. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Denial of service in SiYuan versions 3.1.12 up to (but not including) 3.8.6 allows an attacker who can reach the /api/icon/getDynamicIcon endpoint to exhaust server memory and trigger an OOM kill of the SiYuan process with a single crafted request. The content parameter is rendered through an unrestricted Sprig template function map, so uncapped functions such as 'until' can be used to allocate unbounded resources (CWE-770, uncontrolled resource consumption). Per the CVSS 4.0 vector (PR:L) at least a publish-reader-level account is required in the default configuration, but if the administrator has disabled publish authentication the endpoint becomes reachable by any remote user with network access; the flaw is strictly a resource-exhaustion issue with no code execution or data exposure. No public exploit code was identified at time of analysis, and no confirmed active exploitation (CISA KEV) is associated with this CVE.
RemediationAI
Upgrade SiYuan to 3.8.6 or later, which is the vendor-released fix that restricts the Sprig template function map used by /api/icon/getDynamicIcon (per GHSA-cxwr-r7cq-xw52). If immediate upgrade is not possible, apply layered compensating controls: if the public publish/sharing feature is not required, disable it entirely so the endpoint is not reachable by untrusted users; if publishing is required, ensure publish authentication is enabled (disabling it removes the PR:L barrier and exposes the DoS to any remote user) and avoid granting reader accounts to untrusted parties. Network-level containment is effective and low-risk - block or rate-limit POST requests to /api/icon/getDynamicIcon at a reverse proxy or WAF, and restrict the SiYuan API port to trusted networks - but be aware that icon rendering may degrade for legitimate clients if the route is blocked outright. Finally, run SiYuan inside a container or cgroup with a hard memory limit so an uncontrolled allocation kills only the container instead of the host kernel's OOM killer; the trade-off is that the service will restart/crash on the malicious request rather than remaining available. Monitor memory spikes and repeated process restarts as an indicator of attempted exploitation.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SiYuan is a Go-based personal knowledge management and note-taking application that exposes an HTTP API for its UI and publishing features. The affected component is the dynamic icon API (/api/icon/getDynamicIcon), which accepts a 'content' parameter and renders it through the Sprig template function library - a common Go templating helper set that ships a large function map including iteration and range generators such as 'until', 'untilStep', 'seq', 'repeat', and similar helpers. Because the application did not restrict (allow-list) which Sprig functions could be invoked from user-supplied content, an attacker can request templates that generate extremely large slices or strings, consuming heap and CPU until the process is killed by the Linux OOM killer - in constrained or containerized deployments this can destabilize the host. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the input is trusted to a templating engine that provides no built-in resource ceiling, and the endpoint has no request-level budget or timeout to bound template execution. The vendor CPE cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:* leaves the version range unenumerated, so the affected window is taken from the advisory text itself: versions from 3.1.12 through 3.8.5, with the function-map restriction introduced in 3.8.6.
Know when Siyuan gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable endpoint, low complexity, and a publish-reader account is normally required so PR:L; impact is availability-only (kernel OOM) hence C:N/I:N/A:H and scope unchanged.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
SiYuan v3.1.12 before v3.8.6 fails to restrict the Sprig template function map in the /api/icon/getDynamicIcon content parameter, allowing resource exhaustion. A publish reader, or anyone when publish auth is disabled, can use uncapped functions like until to OOM-kill the kernel with one request.
Technical POC Analysis
CWE-770 (Allocation of Resources Without Limits or Throttling), reached through a template-injection sink that was only partially closed by an earlier fix.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
SiYuan versions 3.1.12 through 3.8.5 are vulnerable to a memory exhaustion denial-of-service that can crash the service with a single crafted request. Organizations relying on SiYuan for knowledge management face potential downtime and loss of availability, impacting productivity and access to critical information. Leadership should prioritize mitigation because the flaw is rated HIGH severity, exploitation currently requires authentication in default configurations (though it can become unauthenticated if publish authentication is disabled), no public exploit identified at time of analysis, and no vendor-released patch identified at time of analysis.
No vendor-released patch identified at time of analysis. Interim mitigations include enabling publish authentication to block unauthenticated access, restricting network access to the vulnerable endpoint via firewall or reverse proxy rules, deploying WAF rules to detect and block malicious requests targeting /api/icon/getDynamicIcon, monitoring for OOM events, and disabling the dynamic icon feature if not essential.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
SQL injection in SiYuan's fullTextSearchAssetContent endpoint lets unauthenticated attackers and holders of publish Role
Stored cross-site scripting in SiYuan personal knowledge management before 3.7.0 lets an attacker with write access to a
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
Stored cross-site scripting in SiYuan's attribute-view (database) cell renderer, affecting all versions prior to 3.7.0,
SQL injection in SiYuan personal knowledge-management software (all versions before v3.7.3) lets attackers inject arbitr
A SQL injection vulnerability was discovered in Siyuan 3.1.11 in /getHistoryItems. Rated critical severity (CVSS 9.8), t
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the ids array parameter in /batchGetBlockAttrs. R
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the id parameter at /getAssetContent. Rated criti
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the notebook parameter in /searchHistory. Rated c
SiYuan personal knowledge management system prior to 3.5.4 has a stored XSS vulnerability (CVSS 9.6) that allows code ex
Remote code execution in SiYuan note-taking application (before v3.6.1) allows any malicious Bazaar marketplace package
Origin-validation bypass in SiYuan Note (open-source personal knowledge management) before 3.7.0 lets any installed Chro
EUVD-2026-97612
GHSA-q79h-f459-w43f
NVD
CVE.org
EPSS
Exploit-DB