GHSA-cvp8-vvgf-69q4MediumCVSS 6.5
obsidian-tc: Default folder ACL is fail-open; .obsidian plugin secrets are readable by default
🔗 CVE IDs covered (1)
📋 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.
🎯 Affected products1
- npm/obsidian-tc:< 1.3.1
🔗 References (6)
- https://github.com/The-40-Thieves/obsidian-tc/security/advisories/GHSA-cvp8-vvgf-69q4
- https://github.com/The-40-Thieves/obsidian-tc/pull/73
- https://github.com/The-40-Thieves/obsidian-tc/commit/74de320ddea855e1dec47d67beabe88491149dab
- https://github.com/The-40-Thieves/obsidian-tc/releases/tag/v1.3.1
- https://nvd.nist.gov/vuln/detail/cve-2026-77364
- https://github.com/advisories/GHSA-cvp8-vvgf-69q4