CVE-2026-77361
MediumCVSS 4.7Exploitation Probability (EPSS)
Low risk1th percentile - higher than 1% of all known CVEs
Summary
obsidian-tc prior to 1.3.1, read access-control list (ACL) checks use a lexical vault-relative path while containment checks use the resolved path. An in-vault symlink under an allowed glob that resolves into a denied folder can therefore bypass the read ACL and expose files in the denied folder. Exploitation requires an out-of-band-planted symlink and does not permit an escape from the vault root.
Risk Assessment
The risk is the possibility of reading files from folders that the user should not have access to, potentially leading to data leakage.
Recommendation
It is recommended to upgrade obsidian-tc to version 1.3.1 or later, which applies ACL checks to the resolved vault-relative path.
Other vulnerabilities in obsidian-tc
See all- CVE-2026-115478High
In obsidian-tc from 1.0.1 until 1.31.4, the create_entity, link_entities, rename_entity, unlink_entities and delete_entity tools regenerate memory notes from SQLite at the computed memory/<type>/<name>.md path without reliably preserving note ownership, so a hand-authored note or an orphan from another entity sanitizing to the same path could have its entire body overwritten. Additionally, several tools mutate SQLite before fallible filesystem work, so a later filesystem failure can leave the memory graph inconsistent with notes on disk even when the operation failed.
- CVE-2026-115477High
In obsidian-tc from 1.13.0 until 1.31.4, a Streamable HTTP deployment with `auth.jwtSecret` configured allowed bypassing human confirmation for dispatch-gated destructive tool calls. The server trusted a validly bound `requestState` as proof of approval even though that state was minted before the `elicitation/create` leg and only proved the resubmission belonged to the same call. A misbehaving or attacker-controlled client could therefore execute destructive vault operations without human approval while still requiring the caller's ordinary tool permissions.
- CVE-2026-77366Critical
In obsidian-tc prior to 1.3.1, tool dispatch does not compare the caller-controlled input.vault value with the vault bound to the caller, the JWT has no vault claim, and the folder access-control list is shared globally. Any valid token can therefore select another configured vault and read, write, or delete its contents through affected tools.
- CVE-2026-77362Medium
obsidian-tc prior to 1.3.1 does not consistently apply the read access-control list (ACL) to every returned field. The tasks_filter tool exposes group counts derived from denied notes, makemd_query passes unfiltered sibling result fields through, and list_templates exposes template paths and parsed user-function bodies without a read-whitelist check. An authenticated caller can consequently infer or read data from notes outside the caller's read ACL.
- CVE-2026-77364Medium
obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. Prior to 1.3.1, undefined readPaths and writePaths settings allow all paths, strictReadDefault does not protect direct requests, and the .obsidian, .git, and .trash control directories are excluded only during enumeration. An authenticated caller can directly read sensitive files such as .obsidian/plugins/*/data.json.
- CVE-2026-77363High
A vulnerability in obsidian-tc, a Model Context Protocol server for Obsidian vaults, before version 1.3.1, does not validate Host or Origin headers or enable DNS-rebinding protection in the Streamable HTTP transport. With loopback configuration using auth.mode set to none, a malicious web page can send requests to the local MCP endpoint and gain unrestricted vault access via the http-local caller. Version 1.3.1 fixes the issue by enabling host, origin, and DNS-rebinding validation.
Original NVD description (English source)
obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. Prior to 1.3.1, read access-control list (ACL) checks use a lexical vault-relative path while containment checks use the resolved path. An in-vault symlink under an allowed glob that resolves into a denied folder can therefore bypass the read ACL and expose files in the denied folder. Exploitation requires an out-of-band-planted symlink and does not permit an escape from the vault root. Version 1.3.1 fixes the vulnerability by applying ACL checks to the resolved vault-relative path.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

