Skip to main content

obsidian-tc EUVDEUVD-2026-98689

| CVE-2026-77362 MEDIUM
Information Exposure (CWE-200)
2026-10-13 GitHub_M
4.3
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privilege MCP caller
  2. Exploit
    Invoke tasks_filter / makemd_query / list_templates
  3. Execution
    Receive unfiltered group counts, sibling fields, template bodies
  4. Impact
    Infer or read notes outside read ACL

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK

2 techniques across 2 tactics: Collection, Discovery

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires (1) an authenticated caller with access to the obsidian-tc MCP server (PR:L), and (2) a read whitelist / read ACL being configured on the vault - the patch explicitly states 'No change when no read whitelist is configured,' so deployments without a read whitelist are not affected. The specific vulnerable surfaces are the tasks_filter tool (leaks group counts aggregated over the UNFILTERED task set), the makemd_query tool (passes unfiltered '...result' sibling fields through), and the list_templates tool (exposes template paths and parsed user-function bodies without a read-whitelist check). Limiting factors: the attacker must already be authenticated, the deployment must rely on a read ACL to segregate notes, and the disclosure is limited to path-attributable metadata, aggregate counts, and template bodies rather than arbitrary full-note contents - so impact is confidentiality-only inference/read of out-of-ACL notes, with no integrity or availability effect.

Impact

This is a genuinely low-priority information-disclosure issue, and the available signals are internally consistent. The vendor CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N, base 4.3) describes a network-reachable but authenticated (PR:L) flaw with only low confidentiality impact and no integrity or availability impact - consistent with the description, which limits the attacker to inferring or reading data from notes outside their own read ACL rather than full vault compromise. No EPSS score was provided in the input, so exploitation probability cannot be quantified. The vulnerability is NOT listed in CISA KEV and no public exploit code was supplied; the only 'source code evidence' is the vendor's own remediation commit, which is a patch, not a weaponized POC. Crucially, the fix notes 'No change when no read whitelist is configured,' meaning the flaw is only exploitable in deployments that actually rely on a read ACL/whitelist to segregate notes - a conditional, trust-boundary leak rather than a broadly exploitable bug. Overall: real but minor, best treated as routine patch-on-next-cycle unless you depend on obsidian-tc's read ACL for multi-tenant or least-privilege note access.

Exploit ScenarioDerived

In an obsidian-tc deployment that uses a read whitelist to restrict which notes a given agent/caller may read, an authenticated low-privilege caller invokes tasks_filter, makemd_query, or list_templates. Because those bridge tools return aggregate group counts, unfiltered sibling result fields, or template paths and parsed user-function bodies without applying the read whitelist, the caller infers or directly reads content from notes outside their ACL. No public exploit code is known; exploitation requires valid authenticated access and low complexity once a read whitelist is in use.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Information disclosure in obsidian-tc (versions prior to 1.3.1) allows an authenticated caller of the MCP server to infer or read note data that falls outside their configured read access-control list. The flaw affects deployments that rely on a read whitelist to segregate vault notes: tasks_filter returns group counts aggregated over the unfiltered task set, makemd_query passes unfiltered sibling result fields through, and list_templates exposes template paths and parsed user-function bodies without a read-whitelist check, so an authenticated caller with PR:L privileges can obtain path-attributable metadata, aggregate counts, and template content from notes they are not permitted to read. The impact is confidentiality-only (CVSS 3.1 base 4.3, C:L, no integrity or availability effect), and no public exploit identified at time of analysis; the vendor released version 1.3.1 to correct the behavior.

RemediationAI

Upgrade obsidian-tc to version 1.3.1 or later; this is the vendor-released fix, published as release tag v1.3.1 (https://github.com/The-40-Thieves/obsidian-tc/releases/tag/v1.3.1) and detailed in advisory GHSA-43r2-c7g8-prc8 (https://github.com/The-40-Thieves/obsidian-tc/security/advisories/GHSA-43r2-c7g8-prc8), with the code change in commit 5ab2109274acf0070601fa71a62b14ddc9652309 and pull request https://github.com/The-40-Thieves/obsidian-tc/pull/75. After upgrading, tasks_filter and makemd_query return only the ACL-filtered items (the leaky unfiltered '...result' siblings are dropped) and list_templates throws an aclDenied error whenever a read whitelist is active, matching the existing fail-closed contract of search_dql; the trade-off is that list_templates becomes unavailable under a read whitelist, which is intentional and should be accounted for in agent workflows or automations that depend on it. If immediate upgrade is not possible, treat the read whitelist as a defense-in-depth control rather than a confidentiality boundary: restrict which principals can authenticate to the MCP server and reach the affected bridge tools (the attacker must already hold an authenticated session), or disable the tasks_filter, makemd_query, and list_templates tools entirely until patched - noting that disabling them removes legitimate functionality for all callers, and that removing the read whitelist is not a valid mitigation since it simply restores full-vault enumeration rather than protecting the segregated notes. No vendor workaround short of upgrading is described in the available references.

Affected VersionsENISA

obsidian-tc < 1.3.1

Affected Packages

euvd obsidian_tc fix: 1.3.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

obsidian-tc is a governed, agent-ready Model Context Protocol (MCP) server that exposes tools for operating on Obsidian vaults, including a set of 'bridge' tools that proxy data from Obsidian plugins such as Tasks, make.md, and Templater. The product implements a read access-control list (read whitelist) that is supposed to constrain every result returned to an MCP client, and related tools such as search_dql follow a fail-closed contract under a read whitelist. Root cause is CWE-200 (Exposure of Sensitive Information to an Unauthorized Actor): the bridge tools applied the read ACL only to the primary 'items' array while still spreading their underlying plugin result objects ('...result') on the response, so sibling fields computed over the UNFILTERED data set leaked out-of-ACL information. Concretely, tasks_filter spread a 'groups' aggregate computed over all tasks, makemd_query spread unfiltered make.md row siblings, and list_templates enumerated template paths and parsed user-function bodies without consulting the read whitelist at all - a shape that is plugin-defined and not reliably path-attributable, which is why the fix refuses the call wholesale. The upstream commit 5ab2109274acf0070601fa71a62b14ddc9652309 gates these paths behind readEnumerationUnrestricted(ctx.acl), returning only the ACL-filtered items (tasks_filter, makemd_query) or throwing an aclDenied error (list_templates). Note that when no read whitelist is configured the enumeration is unrestricted and behavior is unchanged, so only deployments that use a read ACL to segregate notes are exposed.

Know when Obsidian Tc gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 4.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 4.3 MEDIUM

Network-reachable MCP server but requires an authenticated caller (PR:L) and a configured read whitelist; impact is partial confidentiality inference only, so C:L and I/A:N.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Oct 13, 2026 - 15:17 EUVD

DescriptionCVE.org

obsidian-tc is a governed, agent-ready Model Context Protocol server for Obsidian vaults. Prior to 1.3.1, bridge tools do 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. Version 1.3.1 fixes the vulnerability by filtering path-attributable fields and applying the read whitelist to list_templates.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Rare
obscure independent open-source MCP server for Obsidian, tiny deployment footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

22
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +22
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy