GHSA-cvp8-vvgf-69q4

Suggest an improvement
Source
https://github.com/advisories/GHSA-cvp8-vvgf-69q4
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-cvp8-vvgf-69q4/GHSA-cvp8-vvgf-69q4.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-cvp8-vvgf-69q4
Aliases
Published
2026-10-23T17:28:40Z
Modified
2026-10-23T17:45:03Z
Severity
  • 6.5 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
obsidian-tc: Default folder ACL is fail-open; .obsidian plugin secrets are readable by default
Details

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.

Database specific
{
    "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"
}
References

Affected packages

npm / obsidian-tc

Package

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
1.3.1

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/10/GHSA-cvp8-vvgf-69q4/GHSA-cvp8-vvgf-69q4.json"