{"id":"CVE-2026-116171","kind":"vulnerability","aliases":["CVE-2026-116171"],"related":[],"title":"SiYuan on Windows: path check bypass exposes API token and TLS keys","description":"SiYuan 3.5.4 before 3.8.7 on Windows contains a sensitive-path denylist bypass in IsSensitivePath because the Windows extended-length prefix (\\\\?\\) survives filepath.Clean and matches no forbidden prefix. Authenticated API callers can prepend the prefix to localPath in /api/import/importStdMd to copy workspace conf files, including the API token and TLS private keys, into assets served to unauthenticated clients.","summary":"On Windows, SiYuan 3.5.4 before 3.8.7 fails to block paths that use the extended-length prefix (\\\\?\\), so its sensitive-path check misses them. An authenticated API caller can copy workspace config files, including the API token and TLS private keys, into assets that unauthenticated clients can fetch.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","self-hosted","siyuan","windows"],"not_affected_if":["auth-required","non-windows","single-user-desktop"],"how_to_check":"- Run `SiYuan --version` or check the installed version in the app's About dialog; versions from `3.5.4` up to but not including `3.8.7` are affected\n- Confirm the host runs Windows and that SiYuan is reachable by other users or the network","fix":"- Upgrade SiYuan to `3.8.7` or later\n- Rotate the SiYuan API token and any TLS private keys if the instance ran an affected version and was reachable by untrusted authenticated users","status":"open","published_at":"2026-10-25T14:16:56+00:00","first_seen_at":"2026-10-25T14:41:23+00:00","triaged_at":"2026-10-25T14:42:17+00:00","updated_at":"2026-10-25T14:42:17+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T14:42:17Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade SiYuan to `3.8.7` or later\n- Rotate the SiYuan API token and any TLS private keys if the instance ran an affected version and was reachable by untrusted authenticated users","reach":"network","title":"SiYuan on Windows: path check bypass exposes API token and TLS keys","impact":"high","summary":"On Windows, SiYuan 3.5.4 before 3.8.7 fails to block paths that use the extended-length prefix (\\\\?\\), so its sensitive-path check misses them. An authenticated API caller can copy workspace config files, including the API token and TLS private keys, into assets that unauthenticated clients can fetch.","category":"package","nicknames":[],"who_cares":["siyuan","windows","self-hosted"],"confidence":0.8,"needs_auth":"yes","worst_case":"Attacker reads API token and TLS private keys over unauthenticated HTTP","analyst_note":"","how_to_check":"- Run `SiYuan --version` or check the installed version in the app's About dialog; versions from `3.5.4` up to but not including `3.8.7` are affected\n- Confirm the host runs Windows and that SiYuan is reachable by other users or the network","needs_analyst":false,"not_affected_if":["non-windows","single-user-desktop","auth-required"],"who_is_affected":"Windows installs of SiYuan from 3.5.4 up to but not including 3.8.7 are exposed when an authenticated user can call the import API. Single-user desktop installs where only the owner holds credentials carry much less risk. Non-Windows installs are not described as affected.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000632,"input_tokens":3384,"output_tokens":588,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-116171':15A,18A '-2026':14A,17A '/api/import/importstdmd':113C '3.5.4':28B,75C '3.8.7':30B,77C 'api':8A,52B,61B,104C,121C 'asset':68B,128C 'authent':51B,103C 'block':33B 'bypass':6A,86C 'caller':53B,105C 'check':5A,47B 'client':71B,132C 'conf':117C 'config':57B 'contain':80C 'copi':55B,115C 'cve':13A,16A 'denylist':85C 'expos':7A 'extend':39B,93C 'extended-length':38B,92C 'fail':31B 'fetch':73B 'file':58B,118C 'filepath.clean':97C 'forbidden':101C 'host':22B 'includ':59B,119C 'issensitivepath':88C 'key':12A,66B,126C 'length':40B,94C 'localpath':111C 'match':99C 'miss':48B 'packag':19B 'path':4A,34B,46B,84C 'prefix':41B,95C,102C,109C 'prepend':107C 'privat':65B,125C 'self':21B 'self-host':20B 'sensit':45B,83C 'sensitive-path':44B,82C 'serv':129C 'siyuan':1A,23B,27B,74C 'surviv':96C 'tls':11A,64B,124C 'token':9A,62B,122C 'unauthent':70B,131C 'use':36B 'window':3A,24B,26B,79C,91C 'workspac':56B,116C","nicknames":[],"mitigations":[],"who_affected":"Windows installs of SiYuan from 3.5.4 up to but not including 3.8.7 are exposed when an authenticated user can call the import API. Single-user desktop installs where only the owner holds credentials carry much less risk. Non-Windows installs are not described as affected.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-25T14:16:56+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/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","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116171","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116171","severity":null,"published_at":"2026-10-25T14:16:56+00:00","modified_at":"2026-10-25T14:16:56+00:00","first_seen_at":"2026-10-25T14:41:23+00:00","fetched_at":"2026-10-25T14:41:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}