Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach exposed MCP HTTP port
-
DeliveryPOST tools/list to enumerate handlers
-
ExploitPOST tools/call with crafted params
-
ExecutionHandler runs with server credentials/privileges
-
ImpactExecute actions or exfiltrate registered data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the operator to start the PraisonAI TypeScript MCP server over the HTTP JSON-RPC transport (e.g. server.start({ port: 3000 }) / MCPServerConfig.port set) - stdio-only deployments are not exposed. When HTTP is enabled, startHttp() calls httpServer.listen(port) with no host argument, so Node binds the unspecified address (all interfaces) and any network client reaching the port can call tools/call, resources/read, or prompts/get with no credentials; MCPServerConfig exposes no auth token, authorization policy, or loopback-only option. Impact severity scales with what tools/resources/prompts the operator registered and the privileges of the server process. Limiting factors: the port must be network-reachable (exposed beyond localhost/firewall) and the HTTP transport must be in use; there is no user interaction or authentication barrier once reachable. Affected npm praisonai >=1.5.0 through <=1.7.1; initial remediation in 1.7.2. |
| Impact | This is a genuinely high-priority issue with a well-calibrated CVSS 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). All signals align: the MCP HTTP transport in the npm |
| Exploit ScenarioDerived | An operator runs the PraisonAI TypeScript MCP server with the HTTP transport (server.start({ port: 3000 })), which binds to all interfaces with no auth. An attacker who can reach that port sends a JSON-RPC POST for tools/list to enumerate registered tools, then tools/call to invoke a handler that runs with the server's credentials and process privileges - sending 'Authorization: Bearer invalid' changes nothing. Publicly available PoC/exploit code exists (a gist), lowering the bar to immediate opportunistic abuse against exposed instances. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
PraisonAI's TypeScript MCP server (npm package praisonai, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC transport that performs no authentication or authorization, so any network client that can reach the listening port can call tools/call, resources/read, or prompts/get and trigger registered handlers with the server process's credentials and privileges. The server's startHttp() binds the unspecified address (all interfaces) with no host restriction and ignores the Authorization header entirely; the CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8) confirms this is unauthenticated and remotely reachable, though exploitation requires the operator to have enabled the HTTP transport and made the port network-reachable. Publicly available exploit code exists (a public gist), but there is no evidence of confirmed active exploitation, and the EPSS score is low at 0.64% (49th percentile); the vendor-released fix is version 1.7.2.
RemediationAI
Upgrade the npm praisonai package to 1.7.2 or later - this is the vendor-released patch (initial remediation per GHSA-j4f3-55x4-r6q2, released alongside commit 709a0387853709a5e2f2c34680fa64cada252c27 and repository release v4.6.60) and replaces the unauthenticated HTTP handling in startHttp(). If immediate upgrade is not possible, the most effective compensating control is to stop using the HTTP transport for MCP servers that carry credentials: switch to stdio transport (MCPServerConfig.stdio) and keep the process purely local, at the cost of losing remote access to the MCP tools. Where HTTP is genuinely required, bind the service to loopback only instead of the unspecified address (explicitly configure 127.0.0.1 rather than allowing Node's default all-interface bind to ::), then place it behind a firewall or security group rule that permits only trusted clients - the trade-off is that any host with network path access still has full unauthenticated tool invocation, so loopback binding alone is not a substitute for auth. Add an authenticating reverse proxy (mutual TLS or bearer-token validation) in front of the port if remote access is mandatory, accepting the added operational complexity, and run the MCP server process under a least-privilege account with restricted filesystem and network egress so that a successful tools/call cannot reach sensitive data or execute high-impact commands. Finally, audit which tools, resources, and prompts were registered during the exposed window and treat any invocation logs, credentials, or data returned by those handlers as potentially disclosed; blocking the port at the network perimeter is a valid stopgap but leaves the vulnerability intact for anyone who regains reachability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The issue is CWE-306 (Missing Authentication for Critical Function) in the Model Context Protocol server implementation shipped as src/praisonai-ts/src/mcp/server.ts in the npm praisonai package. PraisonAI's MCP server can run either over stdio or over an HTTP JSON-RPC transport; when HTTP is used, startHttp(port) calls this.httpServer.listen(port) with no host argument, which in Node.js binds the unspecified address (observed as { address: "::", family: "IPv6" }), publishing the service on every interface. MCPServerConfig exposes only metadata, tools, resources, prompts, stdio, port and logging settings - there is no auth token, authorization policy, MCPSecurity instance, authorization callback, or loopback-only option - and startHttp() discards the incoming Authorization header, parsing every POST body and forwarding it directly to handleRequest(). That dispatcher routes tools/call, resources/read, and prompts/get into handleToolCall(), handleResourceRead(), and handlePromptGet(), and handleToolCall() invokes the operator-registered tool.handler(args) in-process. Impact therefore scales with what the operator registered and the privileges of the Node process rather than with the transport itself, and the affected CPE is cpe:2.3:a:mervinpraison:praisonai:*:*:*:*:*:*:*:*, with the vendor advisory GHSA-j4f3-55x4-r6q2 tracking the npm package range >=1.5.0, <=1.7.1. Note the versioning divergence: the fix is published as npm praisonai 1.7.2 while the associated repository release is tagged v4.6.60 and the referenced commit (709a0387853709a5e2f2c34680fa64cada252c27) also hardens the CLI sandbox/command validator and adds tool-call approval wrapping, which are defense-in-depth changes in the same release rather than the authentication fix itself.
Know when Praisonai gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Unauthenticated network client reaching the HTTP port invokes tool handlers running with server credentials/process privileges, yielding full C/I/A; no auth or interaction required (PR:N/UI:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
PraisonAI is a multi-agent teams system. From 1.5.0 until 1.7.2, MCPServer.startHttp() in src/praisonai-ts/src/mcp/server.ts binds without a host restriction and forwards every HTTP POST request to handleRequest() without authentication or authorization. Any network client that can reach the port can call tools/list, tools/call, resources/read, or prompts/get, causing registered handlers to run with server-side credentials and process privileges or disclose registered data. An initial remediation was released in version 1.7.2.
Technical POC Analysis
CVE-2026-57139 is CWE-306 in the npm package praisonai, component src/praisonai-ts/src/mcp/server.ts, TypeScript MCPServer HTTP transport.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
PraisonAI's npm-distributed TypeScript MCP server (versions 1.5.0-1.7.1) allows any network client that can reach its HTTP JSON-RPC port to invoke registered tools, resources, and prompts with the server process's own credentials - no login required. Organizations running self-hosted AI agent tooling with the HTTP transport exposed are the affected population, and because those handlers often hold cloud, filesystem, or API secrets, a single reachable instance can become a pivot point into production infrastructure. Leadership should care because the exposure window is defined by network reachability rather than attacker skill, and remediation is a low-effort dependency upgrade.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
EUVD-2026-78393
GHSA-j4f3-55x4-r6q2
NVD
CVE.org
EPSS
Exploit-DB