CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

GHSA-j4f3-55x4-r6q2: npm PraisonAI MCPServer exposes unauthenticated HTTP tools/call

criticalCVSS 9.8CVE-2026-57139
Summary The published npm package praisonai exports a TypeScript MCPServer that can expose tools, resources, and prompts over an HTTP JSON-RPC transport with: await server.start({ port: 3000 }); The HTTP transport has no authentication or authorization path. MCPServerConfig does not expose an auth/security setting, startHttp() ignores the Authorization header, and every POST request is parsed and forwarded directly to handleRequest(). That request handler dispatches sensitive MCP methods such as tools/call, resources/read, and prompts/get. The implementation also calls this.httpServer.listen(port) without a host argument. In Node.js this binds to the unspecified address; the local PoV observed { address: "::", family: "IPv6" }, making the service reachable on all interfaces on systems where the port is exposed. This lets any network client that can reach the HTTP port list tools and invoke registered server-side tools without credentials. Supplying Authorization: Bearer invalid makes no difference. Technical Details MCPServerConfig exposes server metadata, tools/resources/prompts, stdio, port, and logging. It does not expose an auth token, authorization policy, MCPSecurity instance, authorization callback, or loopback-only option: src/praisonai-ts/src/mcp/server.ts 57: export interface MCPServerConfig { 63: tools?: MCPServerTool[]; 65: resources?: MCPResource[]; 67: prompts?: MCPPrompt[]; 69: stdio?: boolean; 73: port?: number | null; 75: logging?: boolean; handleRequest() dispatches sensitive MCP methods directly: src/praisonai-ts/src/mcp/server.ts 203: async handleRequest(request: MCPRequest): Promise<MCPResponse> { 219: case 'tools/call': 220: result = await this.handleToolCall(params); 225: case 'resources/read': 226: result = await this.handleResourceRead(params); 231: case 'prompts/get': 232: result = await this.handlePromptGet(params); The tool dispatcher invokes the registered handler: src/praisonai-ts/src/mcp/server.ts 285: private async handleT

Details

Source
GitHub Security Advisories (INTL · database · site)
Severity
critical — CVSS 9.8
Published
2026-06-18
Last updated
2026-07-20
Exploitation
Not in CISA KEV at last sync

Original advisory: https://github.com/advisories/GHSA-j4f3-55x4-r6q2

Referenced CVEs

CVECSIRTS overviewExternal
CVE-2026-57139coverage & exploitation statusNVD · CVE.org

More from GitHub Security Advisories