{"data":{"id":"154d115f-60e9-4441-8924-7589200f85b1","title":"GHSA-fhh6-4qxv-rpqj: 9router: Unauthenticated Remote Code Execution via unprotected MCP custom plugin routes","summary":"9router exposes unauthenticated endpoints under /api/cli-tools/* and /api/mcp/*, which fall outside the authentication matcher in src/proxy.js. An attacker can POST a custom plugin with an arbitrary command and args to /api/cli-tools/cowork-settings, then GET /api/mcp/[plugin]/sse to trigger spawn() with that command, executing arbitrary OS commands as the user running 9router with no credentials required.","solution":"N/A -- no mitigation discussed in source.","labels":["security"],"sourceUrl":"https://github.com/advisories/GHSA-fhh6-4qxv-rpqj","publishedAt":"2026-05-19T19:22:05.000Z","cveId":"CVE-2026-46339","cweIds":null,"cvssScore":null,"cvssSeverity":"critical","severity":"critical","attackType":["other"],"issueType":"vulnerability","affectedPackages":["9router@>= 0.4.30, < 0.4.37 (fixed: 0.4.37)"],"affectedPackageNames":["9router"],"affectedPackageRefs":["npm:9router"],"affectedVendors":[],"affectedVendorsRaw":["9router","MCP"],"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.03352,"epssCheckedAt":"2026-10-14T18:06:00.235Z","kevDateAdded":null,"advisoryAliases":["GHSA-fhh6-4qxv-rpqj"],"affectedPackagesSource":null,"affectedPackagesCheckedAt":null,"patchAvailable":true,"disclosureDate":"2026-05-19T19:22:05.000Z","capecIds":null,"crossRefCount":0,"attackSophistication":"trivial","impactType":["confidentiality","integrity","availability"],"aiComponentTargeted":"plugin","llmSpecific":false,"classifierConfidence":0.85,"researchCategory":null,"atlasIds":null}}