Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach public SiYuan publish endpoint as reader
-
DeliveryEnumerate unrendered database identifier via related endpoint
-
ExploitCall getCurrentAttrViewImages with unauthorized avID
-
ExecutionBypass missing publish-access gate
-
ImpactLeak detached-row image asset paths and filenames
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that the target SiYuan instance has the publish feature enabled and is serving content to publish readers (read-only role context, IsReadOnlyRoleContext) - the vulnerable code path only fires for that role. The attacker must first obtain an unrendered attribute-view (database) identifier through a related endpoint to supply as avID. Exploitation is limited to leaking detached-row image asset paths and filenames from databases the publish configuration should have excluded; it does not expose image binaries, other row data, or writeable access. Instances not using publish mode, or that do not expose the publish endpoint to untrusted readers, are not exposed. |
| Impact | This is a genuine but modest-severity information-disclosure flaw. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N, base 6.9) indicates a network-reachable, low-complexity, unauthenticated flaw with only LOW confidentiality impact and no integrity/availability effect - consistent with CWE-200 and the description, which limits the leak to image asset paths and filenames rather than image contents or database records. No EPSS score, no CISA KEV listing, and no public POC were provided; per the precision rules this is 'no public exploit identified at time of analysis.' The vendor patch (commit 48229dc7) is confirmed available and adds a top-level publish-access gate plus a regression test, and the finding was reported by VulnCheck with a GitHub Security Advisory (GHSA-j9p6-5639-gf4f), so the vulnerability itself is well-substantiated. The practical caveat that tempers the raw score: exploitation only matters when SiYuan's publish feature is active and exposing databases to publish readers, and the leak is metadata (paths/filenames), not the assets themselves. Net: real and worth patching, but not an urgent widespread-exploitation priority - a high-confidence, low-impact issue rather than a high-CVSS-but-fictional one. |
| Exploit ScenarioDerived | An operator publishes a SiYuan workspace, granting publish readers access to a subset of notebooks/databases. A publish reader (or anyone who can reach the public publish endpoint) obtains an unrendered attribute-view (database) identifier via a related endpoint, then calls getCurrentAttrViewImages with that avID to retrieve image asset paths and filenames belonging to detached rows in databases the rendering endpoint would otherwise deny. No public POC is referenced, but the patched regression test demonstrates the exact leak path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 28, 2026
Information disclosure in SiYuan before v3.8.4 allows publish readers to retrieve image asset paths and filenames from attribute-view (database) rows that the publish configuration should have hidden. The getCurrentAttrViewImages endpoint skips the database-level publish-access check that its sibling rendering endpoint enforces, so an attacker who first obtains an unrendered database identifier from a related endpoint can supply it as avID and receive asset paths for detached rows. The flaw is remotely reachable without authentication (CVSS PR:N) and rated CVSS 6.9 (confidentiality-only, low impact); no public exploit code was identified at time of analysis and the issue is not in CISA KEV, though the vendor has released v3.8.4 to correct it.
RemediationAI
Upgrade to SiYuan v3.8.4 or later; this is a vendor-released patch and the corrective change is the commit at https://github.com/siyuan-note/siyuan/commit/48229dc76ce4212fe42295393af617947b157c15, described in advisory GHSA-j9p6-5639-gf4f. Because the vulnerable code path only executes in a read-only publish context, organizations that cannot upgrade immediately can reduce exposure by disabling the publish feature entirely or, more selectively, by disabling publish access for any database (attribute view) that contains image assets in detached rows - the trade-off is that legitimate publish readers lose access to those databases. Do not expose the publish endpoint to untrusted or anonymous audiences until patched; where publish must remain enabled, restrict it to authenticated/trusted readers and monitor for calls to /api/av/getCurrentAttrViewImages that reference attribute-view IDs not present in the published document set. Note that these are compensating controls only: they do not remediate the missing authorization check, and the leak is limited to asset paths and filenames rather than image binaries, so no data-integrity or availability impact is expected.
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 application whose kernel exposes a Gin HTTP API; the affected handler is GetCurrentAttributeViewImages in kernel/model/attribute_view.go. Attribute views ("databases") are stored as av.AttributeView structures containing key-value collections, and MAsset-type fields hold references to image assets on disk. The vulnerable endpoint iterates rows and extracts asset paths, but unlike renderAttributeView it lacked a top-level call to CheckAttributeViewBlockAccessableByPublishAccess guarded by IsReadOnlyRoleContext. Because filtering was performed per row, detached rows (IsDetached=true, not bound to a carrier document) were treated as accessible, so when no database-level gate existed the handler leaked asset paths from unauthorized databases. This is a classic CWE-200 information-exposure / missing-authorization-check-on-a-secondary-code-path issue: two endpoints read the same data model but only one performed the access-control check. The vendor fix (commit 48229dc76ce4212fe42295393af617947b157c15) adds the same top-level publish-access gate used by the rendering path and retains per-row filtering as a second layer; the accompanying test TestGetCurrentAttributeViewImagesPublishAccess demonstrates a detached row carrying assets/secret-image-20260101000000-abcdefg.png being blocked when the carrier document is publish-disabled or password-protected.
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:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable publish endpoint with no authentication for publish readers (PR:N, AC:L); leak is limited to asset path/filename metadata so C:L, with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
SiYuan before v3.8.4 fails to enforce publish-access checks in the getCurrentAttrViewImages endpoint, allowing publish readers to retrieve image asset paths from unauthorized databases. Attackers can call the endpoint with an unrendered database identifier obtained through related endpoints to leak detached-row image asset paths and filenames that the rendering endpoint would deny.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-88560
GHSA-fg39-6m5r-264j
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB