In the affected default configuration, unspecified readPaths and writePaths were treated as permission for all paths, while strictReadDefault was ineffective on direct file requests. Obsidian control folders, including .obsidian, .git and .trash, were omitted from listings but remained reachable by exact path. The maintainer reports reproduction of reads of…
Inspect the ClaimsCase · DiggingBeagle record
Obsidian-TC allowed direct file requests for hidden credential-bearing vault paths
Default Obsidian-TC file permissions filtered sensitive folders from enumeration but did not block direct reads of files containing plugin API keys and Sync passwords.
Evidence-bound research; no independent field exploitation, victim population or production impact is asserted beyond the cited source.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- patch available
- AI role
- AGAINST AI
Basis and provenance
The maintainer states that API credentials and Obsidian Sync secrets were reproduced through direct vault file reads. No production theft is reported; 1.3.1 is the published patched release. Impact remains ungraded because a comparable, verified realized-loss or deployment-population measure is unavailable.
Assessed Oct 14, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-CP6-OBSIDIAN-FILE-SECRETS-1 · CLM-CP6-OBSIDIAN-FILE-SECRETS-2 · Obsidian-TC fail-open vault file permissions GHSA-cvp8-vvgf-69q4
At a glance
No actual production credential theft or downstream account compromise is established.
Limits and uncertaintyFull account
In the affected default configuration, unspecified readPaths and writePaths were treated as permission for all paths, while strictReadDefault was ineffective on direct file requests. Obsidian control folders, including .obsidian, .git and .trash, were omitted from listings but remained reachable by exact path. The maintainer reports reproduction of reads of .obsidian/plugins/*/data.json containing API credentials and sync secrets.
This is not the same failure as cross-vault selection or browser origin validation. Here the caller already has access to the vault but can request paths that the application should deny even if they are absent from the index. The July 3 version 1.3.1 correction applies the sensitive-directory deny rules to read, write and delete operations and repairs strictReadDefault on direct requests.
The same caller could see an innocent directory listing and still obtain a sensitive hidden path when requesting it exactly. The server used an enumeration filter without a corresponding decision at file-open time, while an unset allowlist permitted broad access. This makes a negative listing result unreliable evidence of protection. A verified correction needs direct positive and negative path tests for .obsidian, .git and .trash, not only a check that those names disappear from listing output.
Timeline
- Jul 3, 2026disclosure
Public disclosure
Claims & evidence
CLM-CP6-OBSIDIAN-FILE-SECRETS-1Obsidian-TC before 1.3.1 denied sensitive vault directories in listings but not direct paths, and the maintainer reproduced reading plugin keys and Sync passwords.supported
Basis: reported finding
- supportsObsidian-TC fail-open vault file permissions GHSA-cvp8-vvgf-69q4primary disclosure
Impact; default readPaths/writePaths, strictReadDefault, and reproduced plugins/*/data.json reads
CLM-CP6-OBSIDIAN-FILE-SECRETS-2The 1.3.1 fix applies control-directory denials on direct file read/write/delete and restores strictReadDefault enforcement.supported
Basis: reported finding
- supportsObsidian-TC fail-open vault file permissions GHSA-cvp8-vvgf-69q4primary disclosure
Patches; Workarounds
Controls and mitigations
- Use 1.3.1 or later, and configure explicit restricted read and write paths that exclude control directories.
Unknowns and contradictions
- No actual production credential theft or downstream account compromise is established.
Sources and citation
Material revision history
- Oct 14, 2026 · Canonical change recorded · new in release · revision 147