{"data":{"id":"8c369ecd-ed58-49cc-a33e-c011dde4d6d0","title":"GHSA-jjhp-8crj-mppq: @roomi-fields/notebooklm-mcp has a path traversal in vault.batch tool that allows arbitrary file write outside intended vault directory","summary":"The vault_batch MCP tool and the POST /batch-to-vault HTTP endpoint in @roomi-fields/notebooklm-mcp passed a caller-supplied vault_dir directly to path.resolve() and fs.mkdir() with no containment check, and slug_prefix was concatenated into filenames without sanitization. Affected versions run from v1.6.0 through v2.0.2, and an attacker, or a prompt-injected LLM driving the MCP, could write .md and .json files to any location the server process can write, such as autostart folders or shell startup files.","solution":"Fixed in v2.0.3: set the NOTEBOOKLM_VAULT_ROOT environment variable to a directory that bounds all vault writes, which enables realpath-based containment, since it is unset by default and the legacy unrestricted behaviour remains when it is unset. slug_prefix is now always sanitized regardless of that variable. Users who cannot upgrade should run the server under a dedicated unprivileged user with write access only to the intended vault directory, keep the HTTP endpoint off non-localhost interfaces, and validate vault_dir arguments before forwarding them.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-jjhp-8crj-mppq","publishedAt":"2026-09-22T14:43:26.000Z","cveId":"CVE-2026-61647","cweIds":null,"cvssScore":null,"cvssSeverity":"high","severity":"high","attackType":["other"],"issueType":"vulnerability","affectedPackages":["@roomi-fields/notebooklm-mcp@>= 1.6.0, < 2.0.3 (fixed: 2.0.3)"],"affectedPackageNames":["@roomi-fields/notebooklm-mcp"],"affectedPackageRefs":["npm:@roomi-fields/notebooklm-mcp"],"affectedVendors":[],"affectedVendorsRaw":["notebooklm-mcp","MCP server"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":"unknown","epssScore":0.00437,"epssCheckedAt":"2026-11-10T18:05:33.319Z","kevDateAdded":null,"advisoryAliases":["GHSA-jjhp-8crj-mppq"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-09-22T14:43:26.000Z","fixReleasedAt":"2026-06-20T07:03:02.706Z","daysToFix":-94,"fixCheckedAt":"2026-10-29T21:30:22.730Z","capecIds":null,"crossRefCount":0,"attackSophistication":"moderate","impactType":["integrity","confidentiality"],"aiComponentTargeted":"api","llmSpecific":false,"classifierConfidence":0.9,"researchCategory":null,"atlasIds":null,"fixes":[{"ecosystem":"npm","name":"@roomi-fields/notebooklm-mcp","fixedVersion":"2.0.3","matchedVersion":"2.0.3","fixReleasedAt":"2026-06-20T07:03:02.706Z","daysToFix":-94,"match":"ecosystem","source":"registry","status":"found","checkedAt":"2026-10-29T21:30:22.585Z"}]}}