GHSA-j99q-93c9-h869

Suggest an improvement
Source
https://github.com/advisories/GHSA-j99q-93c9-h869
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-j99q-93c9-h869/GHSA-j99q-93c9-h869.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-j99q-93c9-h869
Aliases
Published
2026-06-18T14:30:43Z
Modified
2026-07-20T21:56:44Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
MCPVault: PathFilter restricted-directory deny-list bypass via case and trailing dot/space equivalence
Details

On case-insensitive filesystems (macOS, Windows), PathFilter compiled its deny-list patterns case-sensitively and matched the path verbatim, so names like .Git/config, .GIT/config, or .oBsIdIaN/secrets.md slipped past the .git/.obsidian/node_modules restriction while the OS opened the real file. On Windows, trailing dots/spaces (.git./config, .git /config) bypassed it the same way. Affects both isAllowed (read/write/move/search) and isAllowedForListing. Vault-root .. containment is NOT affected. Fixed in 0.11.4 by case-insensitive matching plus per-segment canonicalization before the deny-list check. Reported privately by novice-22.

Database specific
{
    "cwe_ids":  [
        "CWE-178",
        "CWE-41"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-06-18T14:30:43Z",
    "nvd_published_at":  null,
    "severity":  "MODERATE"
}
References

Affected packages

npm / @bitbonsai/mcpvault

Package

Name
@bitbonsai/mcpvault
View open source insights on deps.dev
Purl
pkg:npm/%40bitbonsai/mcpvault

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
0.11.4

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-j99q-93c9-h869/GHSA-j99q-93c9-h869.json"