All vulnerabilities
CVE-2026-77366GHSA-84c9-qqpq-2pq5

obsidian-tc tokens can access arbitrary configured vaults

The-40-Thieves obsidian-tcnpmLibraries & packages
CVSS
9.9Critical
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.31%Chance of exploitation activity in the next 30 days, higher than 22% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in1.3.1Fixed versionGitHub
Published12 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 1.3.1obsidian-tc, npmGitHubnpm install obsidian-tc@1.3.1

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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.

Text from GitHub Advisory Database

Affected versions 3

  • obsidian-tc, npm< 1.3.1GitHub
  • obsidian-tcaffected: < 1.3.1CVE List
  • obsidian-tc, npmfrom first release, fixed in 1.3.1OSV

References 6