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.
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.
Set an explicit readPaths/writePaths whitelist that excludes the control directories.
{
"cwe_ids": [
"CWE-200",
"CWE-276"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-23T17:28:40Z",
"nvd_published_at": "2026-10-12T18:17:23Z",
"severity": "MODERATE"
}