Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed launch() endpoint on 0.0.0.0
-
DeliveryEnumerate agents via GET /{path}/list
-
ExploitSend unauthenticated POST /{path}/{agent_id}
-
Executionagent.chat() executes without auth
-
ImpactExfiltrate private context and trigger agent tools/workflow side effects
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 | Exploitation requires that the target runs the Python AgentTeam.launch() or its Agents.launch() alias to start the FastAPI HTTP server, and that this server is network-reachable - the default bind host is 0.0.0.0 and official documentation demonstrates host='0.0.0.0' for remote access, so a standard remote deployment is sufficient. Once the server is up, no authentication is enforced: requests with no Authorization header or an incorrect bearer token are accepted on GET /{path}/list, POST /{path}, and POST /{path}/{agent_id}. The principal limiting factor is purely deployment-based - if the launch() server is not started or is bound only to localhost/placed behind an authenticating proxy, the vulnerable routes are not externally exploitable. No user interaction, authentication, or non-default feature toggle is otherwise required. |
| Impact | All signals converge on a genuinely high-priority flaw rather than an inflated-CVSS artifact. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) is internally consistent with the description and CWE-306 (Missing Authentication for Critical Function): the GHSA advisory confirms that GET /{path}/list, POST /{path}, and POST /{path}/{agent_id} accept requests with no Authorization header - and even with an obviously wrong bearer token - before invoking agent.chat(). The C:H/I:H/A:H impact is well-supported: unauthenticated callers can read connected private context (confidentiality), trigger agent tools and workflow side effects (integrity), and consume model/API resources (availability/cost). The one tempering factor is deployment-dependent exploitability: the vulnerable surface only exists when AgentTeam.launch()/Agents.launch() is actually started and reachable, though the default bind of 0.0.0.0 and official docs showing host='0.0.0.0' make remote exposure a realistic default. No EPSS score, no CISA KEV listing, and no public proof-of-concept were supplied in the input, so there is currently no evidence of active or widespread exploitation despite the critical score - treat this as high-priority-to-patch but not confirmed-under-attack. The advisory explicitly frames this as an incomplete-fix/sibling variant of a prior PraisonAI unauthenticated-server advisory family, which raises the likelihood that exposed instances exist in the wild. |
| Exploit ScenarioDerived | An operator deploys a PraisonAI agent team using Agents.launch() on host 0.0.0.0, exposing the FastAPI endpoints to a network or the internet. An unauthenticated attacker sends GET /{path}/list to enumerate the deployed agents, then issues POST /{path}/{agent_id} with a crafted query to invoke a specific agent, reading its connected private context and triggering its tools. No public proof-of-concept was identified in the provided data, but the attack requires only standard HTTP requests against default configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Unauthenticated remote agent enumeration and invocation in PraisonAI's AgentTeam.launch() / Agents.launch() HTTP server lets any client that can reach the listening port list deployed agents and trigger agent.chat() calls, burning model resources, reaching connected private context, and firing agent tools and workflow side effects. The affected artifact is the Python package praisonaiagents before 1.6.59, whose FastAPI server binds to 0.0.0.0 by default and accepts requests with no Authorization header - or even with an obviously wrong bearer token. Vendor-released patch: praisonaiagents 1.6.59 (PraisonAI v4.6.59); no public exploit identified at time of analysis, and the practical limiting factor is deployment: the routes are only remotely reachable if launch() is actually started and network-exposed rather than bound to localhost or placed behind an authenticating proxy.
RemediationAI
Upgrade praisonaiagents to 1.6.59 or later (PraisonAI v4.6.59 or later), which is the vendor-released patch for this advisory (GHSA-x8cv-xmq7-p8xp, commit b4270173d4123fb1ee8910588f0896668ee21b59). If the upgrade cannot be applied immediately, containment must be done outside the application: never bind AgentTeam.launch()/Agents.launch() to 0.0.0.0 - bind to 127.0.0.1 instead, accepting that legitimate remote callers lose access and must be tunnelled or the feature disabled - or front the server with an authenticating reverse proxy and restrict the listening port with host and network firewall rules, accepting the extra component to maintain and the fact that per-agent authorisation is still absent at the application layer. Do not rely on configuring an API key or bearer token as a workaround in a vulnerable version: requests with no Authorization header and even requests carrying an obviously wrong bearer token are still accepted, so token configuration does not close the bypass. There is no code-level in-version fix short of the 1.6.59 release; until it is deployed, treat any network-reachable launch() server as an unauthenticated execution surface and monitor it for agent enumeration and chat invocation traffic.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-306 (Missing Authentication for Critical Function). The FastAPI application created by AgentTeam.launch() - exported under the alias Agents - is defined in src/praisonai-agents/praisonaiagents/agents/agents.py, where AgentTeam.launch() begins around line 1923 and registers GET /{path}/list (line ~2086) to enumerate deployed agents plus POST /{path} (line ~2007) and POST /{path}/{agent_id} handlers that call agent_instance.chat(...) (lines ~2042 and ~2117). No access-control check sits anywhere in that request path, and the default Python API bind host for Agents.launch() is 0.0.0.0, with official documentation demonstrating host='0.0.0.0' for remote access, so a normal remote deployment exposes these routes to the network. This is a sibling/incomplete-fix variant within PraisonAI's prior unauthenticated API server and call server advisory family: neighbouring server surfaces were hardened to require tokens, fail closed, or bind locally by default, but this AgentTeam.launch() route-registration path was left open on upstream main at commit 2f9677abb2ea68eab864ee8b6a828fd0141612e1 and release tag v4.6.57. CPE data (cpe:2.3:a:mervinpraison:praisonai and cpe:2.3:a:mervinpraison:praisonaiagents) covers both the PraisonAI project and the praisonaiagents pip package.
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
Endpoints invoke agent.chat() with no auth check over a default 0.0.0.0-bound HTTP server, so AV:N/AC:L/PR:N/UI:N; private-context read, tool invocation, and resource consumption justify C:H/I:H/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI is a multi-agent teams system. Prior to praisonaiagents 1.6.59, AgentTeam.launch and the Agents alias register GET /{path}/list, POST /{path}, and `POST /{path}/{agent_id}' without access-control checks before listing agents or calling agent.chat. A remotely exposed server can therefore let unauthenticated clients enumerate agents, consume model resources, access connected private context, and trigger agent tools or workflow side effects. This vulnerability is fixed in praisonaiagents 1.6.59.
Technical POC Analysis
CWE-306 Missing Authentication for Critical Function, with CWE-862 also cited.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Any network-reachable instance of PraisonAI's AgentTeam/Agents launch() HTTP server (praisonaiagents before 1.6.59) lets an outside party with no credentials enumerate every deployed agent and invoke its chat and tool-execution paths, consuming paid model capacity and acting with the organization's connected data and privileges. Because these agents are commonly wired to internal context, API keys, and downstream workflow integrations, an exposed instance should be treated as a potential unauthorized-access and cost-exposure event affecting any team that has launched the agent server on a non-localhost interface. Severity is critical (CVSS 9.8) but exploitation depends on the deployment actually being started and network-exposed, so the immediate priority is discovery and containment of live listeners rather than broad product withdrawal.
Apply vendor patch: praisonaiagents 1.6.59 (PraisonAI v4.6.59). Until the upgrade is complete, bind the launch() server to localhost instead of 0.0.0.0, block the listening port from untrusted networks via firewall or security group rules, place the server behind an authenticating reverse proxy, and rotate any model-provider keys, tool credentials, or connected data tokens the agents can reach. Note that the source context marks the patch field as not available while the technical description identifies 1.6.59 as the fixed version; confirm current status and the exact fixed build with the vendor advisory before closing the finding.
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.
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
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
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
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
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any pr
EUVD-2026-97774
GHSA-x8cv-xmq7-p8xp
NVD
CVE.org
EPSS
Exploit-DB