ZeroHour

CVE-2026-57441

Case-Sensitivity Path Filter Bypass in MCPVault Obsidian MCP Server (< 0.11.4)

CVSS 4.0
8.4 high
EPSS
Published
()
Modified
AI analysis

MCPVault, a Model Context Protocol server that gives AI agents sandboxed file access inside an Obsidian vault, fails to block restricted directories in versions prior to 0.11.4 because its PathFilter (src/pathfilter.ts) matches patterns like .git, .obsidian, and node_modules case-sensitively and compares paths without canonicalizing filesystem-equivalent names. On case-insensitive macOS and Windows filesystems, simply varying the case of a directory name (e.g., '.GIT') lets it pass both isAllowed() and isAllowedForListing() checks even though the OS still resolves it to the restricted directory; Windows 8.3-style trailing dots or spaces in a segment achieve the same bypass. An attacker who can influence a path chosen by the AI agent (for example via prompt injection in vault content) can use read, write, move, search, or listing operations to expose or tamper with Git history, Obsidian configuration, and node_modules contents — though vault-root '..' containment is not affected, so this is not a vault-escape primitive. The flaw is rated CVSS 4.0 high (8.4) because successful exploitation yields high confidentiality and integrity impact with no privileges, but requires user interaction with a local agent session. It is fixed in version 0.11.4; no public proof of concept exists and no exploitation has been observed.

What to do: Upgrade MCPVault to version 0.11.4 or later immediately, especially on macOS or Windows where the case-insensitivity bypass applies. Review agent session logs and vault contents for any past operations referencing case variants of .git, .obsidian, or node_modules (or Windows paths with trailing dots/spaces) to check for metadata disclosure or tampering. As defense in depth, treat untrusted vault content as a prompt-injection vector that can steer agent-selected paths, and keep the vault-root '..' containment verified since that boundary is not affected by this flaw.

Affected
MCPVault project (open source, GitHub) MCPVaultall versions prior to 0.11.4 (fixed in 0.11.4)
Estimated exposure
No basis for an estimate.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

MCPVault is a lightweight Model Context Protocol server for safe access to files in an Obsidian vault. Prior to 0.11.4, PathFilter in src/pathfilter.ts compiles restricted-directory patterns case-sensitively and compares paths without canonicalizing filesystem-equivalent segment names. On case-insensitive macOS and Windows filesystems, case variants of .git, .obsidian, or node_modules pass both isAllowed() and isAllowedForListing() even though the operating system opens the restricted directory, and Windows trailing dots or spaces provide the same bypass. An attacker who influences a path selected by an AI agent can use the bypass in read, write, move, search, or listing operations to expose or modify sensitive repository and Obsidian metadata. Vault-root .. containment is not affected. This issue is fixed in version 0.11.4.

Weakness
CWE-41, CWE-178
Vector
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.