Patch Forecast
Yellow warning
Plan into this sprint.

CVE-2026-115478 · GHSA-r3g7-r4hr-m258

obsidian-tc: Memory-lifecycle tools overwrite unowned notes or partially commit lifecycle changes

Risk score
55/100
CVSS
7.1 v4.0
Exploit chance (30 days)
0.4%
Published
23 Oct 2026

Open in the live forecast Today's forecast

What to know

What it is
obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. From 1.0.1 until 1.31.4, create_entity, link_entities, rename_entity, unlink_entities and delete_entity regenerate memory notes from SQLite at the computed memory/<type>/<name>.md path without reliably preserving note ownership o…
Affected
obsidian-tc (npm) >= 1.0.1, <= 1.31.3
Fix
Upgrade obsidian-tc to 1.31.4 or later.
Exploitation
No known exploitation

Story map

Story map: obsidian-tcTHE FLAWSTHE FIXCVE-2026-115478Memory-lifecycle toolsoverwrite unowned notes orpartially commit lifecycle…CVSS 7.1 · EPSS 0%CVE-2026-77366Obsidian-tc tokens can accessarbitrary configured vaultsCVSS 9.9 · EPSS 0%CVE-2026-77363Obsidian-tc HTTP transportlacks Origin/DNS-rebindingprotection, enabling drive-by…CVSS 8.8 · EPSS 0%CVE-2026-115477Declined human-in-the-loopconfirmations can permitdestructive calls over HTTPCVSS 7.1 · EPSS 0%Upgrade obsidian-tc1.31.4 · 1.3.1or later on your release lineWho is exposedobsidian-tc (npm) < 1.3.1AMBER · PATCH THIS WEEKobsidian-tcobsidian-tc is a governed,agent-ready Model ContextProtocol server for Obsidianvaults. Prior to 1.3.1, tooldispatch does not compare thecaller-controlled input.vaultvalue with the vault bound to…Where it standsNo known exploitationCONNECTS TOSame weaknessCWE-459 (CWE-459)14 other warnings in 30 days →
Story map: the flaws, the fix, how it unfolded and what it connects to. Boxes link to the record or article.

At a glance

obsidian-tc: Amber, patch this week. obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. Prior to 1.3.1, tool dispatch does not compare the caller-controlled input.vault value with the vault bound to the caller, the JSON Web Token (JWT) has no vault claim, and the folder access-control list is shared globally. Any va…

The flaws

  • CVE-2026-115478: Memory-lifecycle tools overwrite unowned notes or partially commit lifecycle changes (CVSS 7.1 · EPSS 0%)
  • CVE-2026-77366: Obsidian-tc tokens can access arbitrary configured vaults (CVSS 9.9 · EPSS 0%)
  • CVE-2026-77363: Obsidian-tc HTTP transport lacks Origin/DNS-rebinding protection, enabling drive-by vault access on loopback (CVSS 8.8 · EPSS 0%)
  • CVE-2026-115477: Declined human-in-the-loop confirmations can permit destructive calls over HTTP (CVSS 7.1 · EPSS 0%)

The fix

Upgrade obsidian-tc: 1.31.4 · 1.3.1 or later on your release line

Who is exposed: obsidian-tc (npm) < 1.3.1

Where it stands

  • No known exploitation

Connects to

Why it is Yellow

  • CVSS 7.1 high
  • On your watchlist: npm

Affected packages

PackageEcosystemVulnerableFixed in
obsidian-tcnpm>= 1.0.1, <= 1.31.31.31.4

References

Original description

obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. From 1.0.1 until 1.31.4, `create_entity`, `link_entities`, `rename_entity`, `unlink_entities` and `delete_entity` regenerate memory notes from SQLite at the computed `memory/<type>/<name>.md` path without reliably preserving note ownership or the consistency of a failed lifecycle operation. During shared materialization, a hand-authored note or an orphan left by a different entity whose name sanitized to the same path could have its entire body overwritten on the next write naming that type and name, with non-owned frontmatter preserved. `rename_entity` also seeded the destination path with a direct atomic write without validating ownership and could overwrite a foreign note there. Separately, several tools mutated SQLite before fallible filesystem work: `create_entity` and `link_entities` inserted the row or relation before materialization; `rename_entity` updated the entity, including a retired status, before updating its note; `unlink_entities` removed a relation before rematerializing the source note; and `delete_entity`'s cascade removed the target and its relations before rematerializing neighbouring notes. A later filesystem failure could therefore leave a row or relation changed and the memory graph inconsistent with the notes on disk even when the operation failed. An authorized caller with the required memory-tool permissions could, without intending to, destroy the body of a vault note outside the entity being written; `delete_entity` additionally requires its deletion permission and destructive confirmation, which this memory flaw does not bypass. Snapshots-before-write through `restore_note` mitigate the overwrite only where snapshots are enabled and the note had previously been written through obsidian-tc. This issue is fixed in version 1.31.4.

Last activity 23 Oct 2026. Patch Forecast updates every hour.