MCPVault: PathFilter restricted directories (.git/.obsidian/node_modules) only denied at vault root, not nested
Date: 2026-06
Affected: npm/@bitbonsai/mcpvault
Attack vector: prompt-injection
Category: vulnerability-disclosure
Severity: Medium
CWE: CWE-22
CWE-538

PathFilter's deny-list glob patterns are anchored, so `.git`, `.obsidian`, and `node_modules` were only blocked at the vault root. Nested copies inside the vault (e.g. `tools/cli/node_modules/...`, `tools/somerepo/.git/config`, a nested `.obsidian/`) were fully traversable via isAllowed/isAllowedForListing. Impact: a nested `.git/config` (remote URLs / embedded tokens) and nested `.obsidian` contents could be read, under the same prompt-injection threat model as GHSA-j99q-93c9-h869 (an attacker influences the path an agent reads). It also caused nested `node_modules` to pollute the tag index (#128, the public symptom). Fixed in 0.11.5 by denying these restricted names at any path depth (matched case-insensitively as any path segment).


Mitigations:

Architectural layers (MAESTRO):