Security fix · CVE-2026-115478
obsidian-tc: Memory-lifecycle tools overwrite unowned notes or partially commit lifecycle changes
Published Oct 23, 2026 · catalog updated Oct 23, 2026 · The-40-Thieves
Last checked Oct 25, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-115478. EPSS is 0.32%. Act only if a listed version of The-40-Thieves is installed.
Gaps on this record
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
Same product and reporting
- CVE-2026-115477 · High
- CVE-2026-77362 · Medium
- CVE-2026-77363 · Critical
- Severity
- High7.1
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.32%
- Remediation
- Version ranges on file
- Affected products
- npm obsidian-tc · vendor The-40-Thieves obsidian-tc
### Summary , , , and regenerate a memory note's body from SQLite at the computed path. When a note already existed at that path and was not owned by the entity being written (a hand-authored note, or an orphan left by a different entity whose name sanitized to the same path), its entire body was overwritten on the next write naming that , keeping only its frontmatter. Separately, several of these tools inserted or removed their SQLite row before the fallible filesystem step, so a refused note write could leave a relation gone, a retired status committed, or the wrong entity deleted. ### Details - and inserted the SQL row or relation before materialization. - seeded the destination path with a direct atomic write that bypassed the ownership check, and for a status-only rename could commit a retired status with the note write refused. - removed the relation row before discovering the source note's rematerialization would be refused. - 's cascade could delete the target and its relations before a neighbour's note was found to be foreign. The overwrite exists in every released version since shipped ( ). ### Impact An authorized caller with memory-write scope (any agent using the M5 memory tools) can, without intending to, destroy the body of a vault note outside the entity it is writing, and can leave the memory graph inconsistent with the notes on disk. Snapshots-before-write ( ) mitigate the overwrite only where snapshots are enabled and the note had been written through obsidian-tc before. ### Patches Fixed in 1.31.4 at the shared primitive: refuses to write over a note whose is missing or belongs to another entity; a new pre-check runs before any SQLite mutation in the three lifecycle tools, so a refusal is a no-op; and roll back the row they had inserted. Verified by , which covers all five call sites and the rollback. ### Workarounds None that preserve the tools. Disabling the scope for callers prevents the write path entirely. ### Credit Found by the maintainer
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- npm obsidian-tc>= 1.0.1, <= 1.31.3
- vendor The-40-Thieves obsidian-tcversion unspecified
How to fix CVE-2026-115478
Upgrade
CVE-2026-115478 lists a fix boundary at 1.31.3. Compare the installed build with that boundary before you change production.
Version check
Affected <= 1.31.3
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-115478. EPSS is 0.32%. Act only if a listed version of The-40-Thieves is installed.
Which versions are affected?
Compare what you have installed with >= 1.0.1, <= 1.31.3. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-459; CWE-863: Incorrect Authorization. EPSS 0.32%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 23, 2026 · GitHub Advisory Database
Detected
### Summary , , , and regenerate a memory note's body from SQLite at the computed path. When a note already existed at that path and was not owned by the entity being written (a hand-authored note, or an orphan left by a different entity whose name sanitized to the same path), its entire body was overwritten on the next write naming that , keeping only its frontmatter. Separately, several of these
Oct 23, 2026 · GitHub Advisory Database
Updated
### Summary , , , and regenerate a memory note's body from SQLite at the computed path. When a note already existed at that path and was not owned by the entity being written (a hand-authored note, or an orphan left by a different entity whose name sanitized to the same path), its entire body was overwritten on the next write naming that , keeping only its frontmatter. Separately, several of these
Sources
- CVE.orgVulnerability recordCVE-2026-115478
obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. From 1.0.1 until 1.31.4, , , , and regenerate memory notes from SQLite at the computed path without reliably preserving note ownership or the consistency of a failed lifecycle operation. Dur
cve.org - FIRST EPSSExploitation probabilityCVE-2026-115478
30-day exploitation probability 0.32%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-r3g7-r4hr-m258
obsidian-tc: Memory-lifecycle tools overwrite unowned notes or partially commit lifecycle changes
github.com - GitLab Advisory DatabasePackage advisoryCVE-2026-115478
create_entity, link_entities, rename_entity, unlink_entities and delete_entity regenerate a memory note's body from SQLite at the computed memory/ / .md path. When a note already existed at that path and was not owned by the entity being written (a hand-authored note, or an orphan left by a different entity whose name sanitized to the same path), its entire body was overwritten on the next write n
advisories.gitlab.com
References
Freshness
Last verified in this catalog Oct 25, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- GitLab Advisory DatabaseOct 25, 2026
- FIRST EPSSOct 25, 2026
- CVE.orgOct 23, 2026
- GitHub Advisory DatabaseOct 23, 2026