GHSA-84c9-qqpq-2pq5
obsidian-tc tokens can access arbitrary configured vaults
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | obsidian-tc | < 1.3.1 | 1.3.1 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
Tool dispatch did not check the caller-supplied `input.vault` against the caller's bound vault (`ctx.vaultId`); the folder ACL was a single global instance and the JWT carried no vault claim. As a result, **any valid token could read, write, or delete any configured vault** by passing `input.vault`, defeating multi-tenant isolation across ~90 tool sites. (`resources/read` was the only surface that already guarded this.)
### Patches
Fixed in **1.3.1** (the fix was developed on the `v1.3.0` tag, which never published to npm; 1.3.1 is the first published release with the fix). Upgrade to `>= 1.3.1`.
### Workarounds
Run a single vault per server process, or isolate each tenant on a separate process/credential.
### Fix
A central `input.vault === ctx.vaultId` guard was added in dispatch before the scope check.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/The-40-Thieves/obsidian-tc/security/advisories/GHSA-84c9-qqpq-2pq5
- https://github.com/The-40-Thieves/obsidian-tc/pull/72
- https://github.com/The-40-Thieves/obsidian-tc/commit/38b4992e87dc2715564236e1a42d005ab05a0194
- https://github.com/The-40-Thieves/obsidian-tc
- https://github.com/The-40-Thieves/obsidian-tc/releases/tag/v1.3.1
- https://nvd.nist.gov/vuln/detail/cve-2026-77366