🛡️ CVE-2026-57118 — praisonaiagents

🔴 CVSS 9.5 — Critical ✅ No Known Exploit CWE-306 OSV
9.5
CVSS Score
0 Low4 Medium7 High9 Critical10

Description

PraisonAI AgentTeam.launch exposes unauthenticated remote agent listing and invocation endpoints

# PraisonAI AgentTeam.launch() exposes unauthenticated remote agent invocation endpoints

Summary

PraisonAI's documented Python AgentTeam.launch() / Agents.launch() HTTP server starts externally reachable agent invocation endpoints without any authentication enforcement.

The current implementation registers GET /{path}/list, POST /{path}, and POST /{path}/{agent_id} routes. The POST routes directly call agent.chat(...). Requests with no Authorization header are accepted, and requests with an obviously wrong bearer token are also accepted. The default Python API bind host for Agents.launch() is 0.0.0.0, and official documentation shows host="0.0.0.0" for remote access.

This is a sibling/incomplete-fix variant of PraisonAI's prior unauthenticated API server and call server advisory family. Nearby server surfaces were hardened to require tokens, fail closed, or bind locally by default, but the AgentTeam.launch() FastAPI path still exposes unauthenticated agent execution on current upstream main and the latest release.

This report is scoped to the Python AgentTeam.launch() / Agents.launch() route-registration path. It does not require adjudicating whether the separate praisonai serve agents --api-key CLI path is correctly enforced.

Affected Components

  • Package: praisonaiagents
  • Current upstream main tested: 2f9677abb2ea68eab864ee8b6a828fd0141612e1
  • Latest release tag tested: v4.6.57
  • Primary file: src/praisonai-agents/praisonaiagents/agents/agents.py
  • Current line references: AgentTeam.launch() begins at line 1923;

the group POST route is registered at line 2007; the group handler invokes

agent_instance.chat(...) at line 2042; the unauthenticated list route is

registered at line 2086; per-agent handlers invoke agent.chat(...) at line

2117.

  • Primary class/API: AgentTeam.launch() / exported alias Agents
  • Affected routes:
  • GET /{path}/list: lists deployed agents.
  • POST /{path}: sequentially invokes all agents in the team.
  • POST /{path}/{agent_id}: invokes a specific agent.

Current vulnerable sink:

```python

@app.post(path)

async def handle_query(request: Request, query_data: Optional[AgentQuery] = None):

...

response = await loop.run_in_executor(

None,

copy_context_to_callable(lambda ci=current_input: agent_instance.chat(ci)),

)

```

Per-agent sink:

```python

app.post(agent_path)(create_agent_handler(agent_instance))

...

response = await loop.run_in_executor(

None,

copy_context_to_callable(lambda q=query: agent.chat(q)),

)

```

List endpoint:

```python

@app.get(f"{path}/list")

async def list_agents():

return {"agents": [{"name": agent.display_name, "id": ...} for agent in self.agents]}

```

There is no middleware, dependency, token comparison, bearer-token parsing, API-key check, or startup fail-closed guard in this launch path.

Security Boundary

This is not a trust-model-only report. PraisonAI's own current security documentation says API servers were hardened so that anonymous requests return 401 and API servers bind to 127.0.0.1 by default after the prior unauthenticated API advisory family.

The codebase also contains hardened sibling implementations:

  • praisonai.deploy.api now has AUTH_ENABLED, PRAISONAI_API_TOKEN, generated tokens, and 401 Unauthorized checks (src/praisonai/praisonai/deploy/api.py lines 44-62 and 69-97).
  • praisonai.gateway.server.WebSocketGateway validates external bind safety, requires a token for external binds, checks bearer/query/cookie auth, and validates WebSocket auth (src/praisonai/praisonai/gateway/server.py lines 328-424).
  • praisonai call hardening is documented as requiring CALL_SERVER_TOKEN or explicit opt-out.

AgentTeam.launch() remains outside those shared controls even though it exposes the same class of network-facing agent invocation surface.

Local-Only Reproduction

Run the local-only PoV script below with current source on PYTHONPATH:

```bash

PYTHONPATH="/path/to/PraisonAI/src/praisonai-agents:/path/to/PraisonAI/src/praisonai" \

python poc_agentteam_launch_unauth.py

```

Expected vulnerable result:

```text

[poc] HIT: unauthenticated clients invoked AgentTeam endpoints

```

Observed on current upstream main:

```json

{

"results": [

{

"body": {

"agents": [

{

"id": "pov_agent",

"name": "pov_agent"

}

]

},

"case": "no_auth_list",

"method": "GET",

"path": "/agents/list",

"status": 200

},

{

"case": "no_auth_group",

"method": "POST",

"path": "/agents",

"status": 200,

"body": {

"final_response": "POV_UNAUTH_AGENTTEAM_EXECUTED:marker",

"query": "marker",

"results": [

{

"agent": "pov_agent",

"response": "POV_UNAUTH_AG

How this vulnerability can be exploited

This issue can be reached over the network, attack complexity is low, an attacker needs no privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity high, availability high.

Weakness class

CVE-2026-57118 is classified as CWE-306: Missing Authentication for Critical Function. A sensitive function can be reached without authenticating at all.

Affected software

CVE-2026-57118 is recorded against 1 package.

  • praisonaiagents (fixed in 1.6.59)

Timeline and source

Published on 18 June 2026 and last revised on 23 July 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.

References

github.com (Web)
github.com (Package)

Details

Severity CRITICAL
CVSS Score 9.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE CWE-306
Public Exploit ✅ No
Source OSV
Published 2026-06-18
Updated 2026-08-12
Modified 2026-07-23
Fix URL N/A

Affected Packages

Software From version Fixed in
praisonaiagents 1.6.59

Similar Threats

Exploit Protection

Are you running praisonaiagents?

CVE-2026-57118 carries CVSS 9.5 Critical rating. BotEraser checks your installation against this and other known CVE records, and blocks IPs associated with exploit activity.

Check My Site For CVE-2026-57118 →

No credit card required  ·  Results in minutes

ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.