{"data":{"id":"e6628ce8-8ba9-46cb-98bd-2d4cf87ca49d","title":"GHSA-647h-p824-99w7: @grackle-ai/mcp has a workspace authorization bypass in its knowledge_search MCP tool","summary":"The knowledge_search and knowledge_get_node MCP tools in @grackle-ai/mcp are listed in SCOPED_TOOLS, so scoped agents can call them, but their handlers do not receive authContext or enforce workspace scoping. A scoped agent in Workspace A can pass an arbitrary workspaceId to read knowledge graph data from Workspace B, bypassing workspace isolation (CWE-284).","solution":"Fix: Add an authContext parameter to the knowledge_search and knowledge_get_node handlers and enforce workspace scoping, matching knowledge_create_node, using resolvedWorkspaceId = authContext?.type === \"scoped\" ? authContext.workspaceId ?? \"\" : workspaceId ?? \"\". Workarounds: do not use scoped agent tokens in multi-workspace deployments until patched, or remove knowledge_search and knowledge_get_node from the SCOPED_TOOLS set in tool-scoping.ts.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-647h-p824-99w7","publishedAt":"2026-03-25T17:23:11.000Z","cveId":null,"cweIds":null,"cvssScore":null,"cvssSeverity":"high","severity":"high","attackType":["other"],"issueType":"vulnerability","affectedPackages":["@grackle-ai/mcp@<= 0.70.1 (fixed: 0.70.2)"],"affectedPackageNames":["@grackle-ai/mcp"],"affectedPackageRefs":["npm:@grackle-ai/mcp"],"affectedVendors":[],"affectedVendorsRaw":["@grackle-ai/mcp","MCP (Model Context Protocol) knowledge_search tool"],"classifierModel":"claude-haiku-5-5","classifierPromptVersion":"v4","summaryPromptVersion":"v2","headline":null,"headlinePromptVersion":null,"cvssVector":null,"attackVector":null,"attackComplexity":null,"privilegesRequired":null,"userInteraction":null,"exploitMaturity":null,"epssScore":null,"epssCheckedAt":null,"kevDateAdded":null,"advisoryAliases":["GHSA-647h-p824-99w7"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-03-25T17:23:11.000Z","fixReleasedAt":"2026-03-22T18:48:53.190Z","daysToFix":-3,"fixCheckedAt":"2026-10-29T21:39:39.317Z","capecIds":null,"crossRefCount":0,"attackSophistication":"trivial","impactType":["confidentiality"],"aiComponentTargeted":"plugin","llmSpecific":false,"classifierConfidence":0.9,"researchCategory":null,"atlasIds":null,"fixes":[{"ecosystem":"npm","name":"@grackle-ai/mcp","fixedVersion":"0.70.2","matchedVersion":"0.70.2","fixReleasedAt":"2026-03-22T18:48:53.190Z","daysToFix":-3,"match":"ecosystem","source":"registry","status":"found","checkedAt":"2026-10-29T21:39:39.171Z"}]}}