{"id":"CVE-2026-126266","kind":"vulnerability","aliases":["CVE-2026-126266"],"related":[],"title":"SiYuan: unauthenticated publish visitors can read password-protected document text","description":"SiYuan from 3.6.0 before 3.8.9 contains an information disclosure vulnerability that allows unauthenticated publish visitors to bypass per-document passwords via regex search in getDoc. Attackers can send POST requests to /api/filetree/getDoc with queryMethod 3 and a broad regex to read protected body text returned in the unfiltered keywords field.","summary":"SiYuan versions from 3.6.0 before 3.8.9 let unauthenticated visitors to a published site bypass per-document passwords through a regex search on the getDoc endpoint. An attacker can read the body text of protected documents from the keywords field of the response.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","publishing","self-hosted","siyuan"],"not_affected_if":["no-password-protected-docs","publishing-disabled","version-3.8.9-or-later"],"how_to_check":"- Check the SiYuan version in the app's About page or the running build; versions `3.6.0` through `3.8.9` (exclusive) are affected.\n- Check whether publishing is enabled and whether any published documents use per-document passwords.","fix":"- SiYuan: move to `3.8.9` or later.","status":"open","published_at":"2026-11-13T10:17:29+00:00","first_seen_at":"2026-11-13T10:47:12+00:00","triaged_at":"2026-11-13T10:50:36+00:00","updated_at":"2026-11-13T10:50:36+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-13T10:50:36Z","model":"claude-haiku-5-5","output":{"fix":"- SiYuan: move to `3.8.9` or later.","reach":"internet","title":"SiYuan: unauthenticated publish visitors can read password-protected document text","impact":"medium","summary":"SiYuan versions from 3.6.0 before 3.8.9 let unauthenticated visitors to a published site bypass per-document passwords through a regex search on the getDoc endpoint. An attacker can read the body text of protected documents from the keywords field of the response.","audience":"everyone","category":"package","nicknames":[],"who_cares":["siyuan","self-hosted","publishing"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"unauthenticated visitors read text of password-protected documents","analyst_note":"","how_to_check":"- Check the SiYuan version in the app's About page or the running build; versions `3.6.0` through `3.8.9` (exclusive) are affected.\n- Check whether publishing is enabled and whether any published documents use per-document passwords.","plain_action":"Update SiYuan to version 3.8.9 or later, and do not rely on per-document passwords for sensitive notes until you have.","product_name":"","needs_analyst":false,"not_affected_if":["publishing-disabled","no-password-protected-docs","version-3.8.9-or-later"],"who_is_affected":"Anyone running a self-hosted SiYuan instance from 3.6.0 up to but not including 3.8.9 with publishing turned on and password-protected documents. Instances that do not publish, or that publish without per-document passwords, are not exposed by this flaw.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000759,"input_tokens":4625,"output_tokens":592,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-126266':14A,17A '-2026':13A,16A '/api/filetree/getdoc':99C '3':102C '3.6.0':27B,69C '3.8.9':29B,71C 'allow':78C 'attack':51B,93C 'bodi':55B,110C 'broad':105C 'bypass':37B,83C 'contain':72C 'cve':12A,15A 'disclosur':75C 'document':10A,40B,59B,86C 'endpoint':49B 'field':63B,117C 'getdoc':48B,92C 'host':22B 'inform':74C 'keyword':62B,116C 'let':30B 'packag':18B 'password':8A,41B,87C 'password-protect':7A 'per':39B,85C 'per-docu':38B,84C 'post':96C 'protect':9A,58B,109C 'publish':3A,19B,35B,80C 'querymethod':101C 'read':6A,53B,108C 'regex':44B,89C,106C 'request':97C 'respons':66B 'return':112C 'search':45B,90C 'self':21B 'self-host':20B 'send':95C 'site':36B 'siyuan':1A,23B,24B,67C 'text':11A,56B,111C 'unauthent':2A,31B,79C 'unfilt':115C 'version':25B 'via':88C 'visitor':4A,32B,81C 'vulner':76C","nicknames":[],"mitigations":[],"who_affected":"Anyone running a self-hosted SiYuan instance from 3.6.0 up to but not including 3.8.9 with publishing turned on and password-protected documents. Instances that do not publish, or that publish without per-document passwords, are not exposed by this flaw.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"everyone","plain_action":"Update SiYuan to version 3.8.9 or later, and do not rely on per-document passwords for sensitive notes until you have.","pkeys":[],"ptokens":[],"labels":["high","package","publishing","selfhosted","siyuan"],"campaign_type":null,"search_a":"'-126266':14A,17A '-2026':13A,16A 'cve':12A,15A 'document':10A 'password':8A 'password-protect':7A 'protect':9A 'publish':3A 'read':6A 'siyuan':1A 'text':11A 'unauthent':2A 'visitor':4A","search_b":"'3.6.0':27B '3.8.9':29B 'attack':51B 'bodi':55B 'bypass':37B 'document':40B,59B 'endpoint':49B 'field':63B 'getdoc':48B 'host':22B 'keyword':62B 'let':30B 'packag':18B 'password':41B 'per':39B 'per-docu':38B 'protect':58B 'publish':19B,35B 'read':53B 'regex':44B 'respons':66B 'search':45B 'self':21B 'self-host':20B 'site':36B 'siyuan':23B,24B 'text':56B 'unauthent':31B 'version':25B 'visitor':32B","search_c":"'/api/filetree/getdoc':99C '3':102C '3.6.0':69C '3.8.9':71C 'allow':78C 'attack':93C 'bodi':110C 'broad':105C 'bypass':83C 'contain':72C 'disclosur':75C 'document':86C 'field':117C 'getdoc':92C 'inform':74C 'keyword':116C 'password':87C 'per':85C 'per-docu':84C 'post':96C 'protect':109C 'publish':80C 'querymethod':101C 'read':108C 'regex':89C,106C 'request':97C 'return':112C 'search':90C 'send':95C 'siyuan':67C 'text':111C 'unauthent':79C 'unfilt':115C 'via':88C 'visitor':81C 'vulner':76C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-26T03:53:46+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-126266","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-126266","severity":null,"published_at":"2026-11-13T10:17:29+00:00","modified_at":"2026-11-13T10:17:29+00:00","first_seen_at":"2026-11-13T10:47:12+00:00","fetched_at":"2026-11-13T10:47:12+00:00","note":null}],"documents":[{"id":144861,"url":"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-qf37-w288-frvq","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-26T03:53:46+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":144862,"url":"https://www.vulncheck.com/advisories/siyuan-from-3.6.0-before-3.8.9-publish-password-bypass-via-getdoc-regex-keywords","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}