obsidian-tc: Default folder ACL is fail-open; .obsidian plugin secrets are readable by default
What fixes it
- 1.3.1obsidian-tc, npmGitHub
npm install obsidian-tc@1.3.1
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Impact
With a default configuration, an undefined readPaths/writePaths meant allow-all, the strictReadDefault flag was inert, and the .obsidian/.git/.trash control directories were denied only during enumeration — not on the direct request path. A caller could read .obsidian/plugins/*/data.json, exfiltrating plugin API keys and Obsidian Sync passwords (live-reproduced), as well as any other in-vault file by path.
Patches
Fixed in 1.3.1. Upgrade to >= 1.3.1. The default now denies .obsidian/.git/.trash on read/write/delete and honors strictReadDefault on the request path.
Workarounds
Set an explicit readPaths/writePaths whitelist that excludes the control directories.
Text from GitHub Advisory Database
Affected versions 3
- obsidian-tc, npm< 1.3.1GitHub
- obsidian-tcaffected: < 1.3.1CVE List
- obsidian-tc, npmfrom first release, fixed in 1.3.1OSV
References 6
- github.com/The-40-Thieves/obsidian-tc/commit/74de320ddea855e1dec47d67beabe88491149dabFixvia CVE List
- github.com/The-40-Thieves/obsidian-tc/releases/tag/v1.3.1Fixvia CVE List
- github.com/The-40-Thieves/obsidian-tc/security/advisories/GHSA-cvp8-vvgf-69q4Advisoryvia CVE List
- github.com/advisories/GHSA-cvp8-vvgf-69q4Advisoryvia GitHub
- github.com/The-40-Thieves/obsidian-tc/pull/73Referencevia CVE List
- nvd.nist.gov/vuln/detail/cve-2026-77364Referencevia GitHub