CVE-2026-69086
nichePath Traversal in SiYuan attribute-view API exposes cross-scope workspace data
SiYuan, an open-source Go-based note-taking and knowledge-management application, is vulnerable to a path traversal (CWE-22) in its attribute-view read API, where a caller-supplied id/avID is joined into a file path under the workspace's storage/av/ directory without containment checks or rejection of '..' segments. An attacker sends an avID containing ../ sequences to endpoints such as POST /api/av/renderAttributeView; because the only identifier-format check (ast.IsNodeIDPattern) runs solely on the file-creation branch, any traversal that resolves to an already-existing .json file falls through to an unconfined file read via av.ParseAttributeView and filelock.ReadFile. The four affected endpoints (/api/av/renderAttributeView, /api/av/getAttributeViewKeysByID, /api/av/getAttributeViewKeys, /api/av/getCurrentAttrViewImages) are gated only by CheckAuth, so a publish-service RoleReader token is sufficient, and when Publish.Auth.Enable is false the publish proxy uses the anonymous account, making the surface reachable with no credentials. Successful exploitation yields cross-scope disclosure of attribute-view/.json data from elsewhere in the workspace, with confidentiality-only impact scored 7.7 high (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N), affecting SiYuan deployments whose API or publish service is network-reachable. No exploitation is currently known: the flaw is not in CISA KEV, no public PoC exists, and EPSS estimates only a ~0.4% probability of exploitation within 30 days.
What to do: Apply the vendor fix when available (no fixed version is given in the source data, so check the SiYuan advisory or GitHub release notes), and in the meantime restrict network exposure of the /api/av/* endpoints. Keep Publish.Auth.Enable enabled with least-privilege reader tokens so anonymous users cannot reach the affected endpoints. Hunt for probing by reviewing access logs for id/avID values containing ../ sent to the four listed endpoints.
| SiYuan (open-source note-taking project) SiYuan kernel Go HTTP API - attribute-view read endpoints (/api/av/renderAttributeView, /api/av/getAttributeViewKeysByID | — |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
SiYuan versions before v3.7.3 fail to validate the avID parameter on all code branches in attribute-view read endpoints, allowing attackers to construct traversal paths that escape the storage directory. Authenticated users with RoleReader permissions or anonymous clients when publish authentication is disabled can read JSON files outside the attribute-view directory to disclose cross-scope database content.
- Ecosystems
- go
- Weakness
- CWE-22
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/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
- GHSA
- GHSA-7hm9-v7vf-7g4w (high)
In the news0 stories
No ingested article mentions this CVE yet.