CVE-2026-57116
PraisonAI: AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
PraisonAI is a multi-agent teams system. From version 4.2.1 to before version 4.6.59, PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in current main and in releases after the published patched version for GHSA-pm96-6xpr-978x / CVE-2026-40151. The chat route directly calls agent.chat(request.message). No-auth and wrong-bearer requests both execute the deployed agent. This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents. This issue has been patched in version 4.6.59.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.8
PraisonAI: AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
PraisonAI is a multi-agent teams system. From version 4.2.1 to before version 4.6.59, PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in current main and in releases after the published patched version for GHSA-pm96-6xpr-978x / CVE-2026-40151. The chat route directly calls agent.chat(request.message). No-auth and wrong-bearer requests both execute the deployed agent. This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents. This issue has been patched in version 4.6.59.
- Record
CVE-2026-57116- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-200, CWE-306, CWE-862
- Updated
- 2026-11-02
EUVDEUVD-2026-108894
9.8
PraisonAI is a multi-agent teams system. From version 4.2.1 to before version 4.6.59, PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in current main and in releases after the published patched version for GHSA-pm96-6xpr-978x / CVE-2026-40151. The chat route directly calls agent.chat(request.message). No-auth and wrong-bearer requests both execute the deployed agent. This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents. This issue has been patched in version 4.6.59.
- Record
EUVD-2026-108894- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-892r-p3jq-jp24
9.8
PraisonAI: AgentOS remains unauthenticated after incomplete fix version and allows remote agent invocation
AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
Summary
PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in
current main and in releases after the published patched version for
GHSA-pm96-6xpr-978x / CVE-2026-40151.
The public AgentOS advisory is published as an instruction-disclosure issue
with affected versions < 4.5.128 and patched version 4.5.128. However,
v4.5.128, latest release v4.6.57, and current main still register
GET /api/agents and POST /api/chat without authentication. The chat route
directly calls agent.chat(request.message). No-auth and wrong-bearer requests
both execute the deployed agent.
This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents.
Affected Product
- Repository:
MervinPraison/PraisonAI - Package:
praisonai - Component:
src/praisonai/praisonai/app/agentos.py - Config component:
src/praisonai-agents/praisonaiagents/app/config.py - Public advisory incomplete-fix reference:
GHSA-pm96-6xpr-978x/CVE-2026-40151
Confirmed affected dynamically:
v4.5.126v4.5.128(published patched version forGHSA-pm96-6xpr-978x)v4.6.9v4.6.10v4.6.56v4.6.57- current main
2f9677abb2ea68eab864ee8b6a828fd0141612e1
Static source review found the same unauthenticated route pattern and
0.0.0.0 default in v4.2.1.
Suggested affected range: >= 4.2.1, <= 4.6.57.
Root Cause
AgentOSConfig / AgentAppConfig defaults the deployment host to all
interfaces and has no authentication fields:
name: str = "PraisonAI App"
host: str = "0.0.0.0"
port: int = 8000
api_prefix: str = "/api"
AgentOS._register_routes() registers public agent metadata and chat routes
without middleware, dependency, API key check, bearer-token check, or startup
fail-closed guard:
@app.get(f"{self.config.api_prefix}/agents")
async def list_agents():
return {"agents": [...]}
@app.post(f"{self.config.api_prefix}/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
...
response = agent.chat(request.message)
A wrong Authorization header is ignored because the route does not inspect it.
Current main also has a root-export bug where from praisonai import AgentOS
raises ImportError, but this does not mitigate the issue. The same class
remains reachable through from praisonai import AgentApp and
from praisonai.app import AgentOS.
Why This Is Not Intended Behavior
PraisonAI's security documentation says API servers were hardened so anonymous
requests return 401 and default binding changed from 0.0.0.0 to
127.0.0.1 after the prior unauthenticated API server class.
The API Server Authentication docs say bearer auth is enabled by default,
disabling auth is not recommended for production, and 0.0.0.0 should be used
only behind an authenticating proxy.
The local PoV includes a hardened sibling control for the generated deploy API on current main. It returns:
- no auth:
401 - wrong bearer:
401 - correct bearer:
200
AgentOS remains outside that control plane and still accepts no-auth and
wrong-bearer /api/chat requests.
Local PoV
The PoV is local-only. It uses FastAPI's in-process test client, a stub agent, and a temporary file side effect. It does not start a network listener, call an LLM provider, or contact any external service.
Command:
env PYTHONPATH="artifacts/repos/praisonai-current/src/praisonai:artifacts/repos/praisonai-current/src/praisonai-agents" \
uv run --with fastapi --with httpx --with flask --with flask-cors \
--with pydantic --with typing-extensions --with rich --with python-dotenv \
…
- Record
GHSA-892r-p3jq-jp24- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-200, CWE-306, CWE-862
- Updated
- 2026-11-02
NVD
9.8
PraisonAI is a multi-agent teams system. From version 4.2.1 to before version 4.6.59, PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in current main and in releases after the published patched version for GHSA-pm96-6xpr-978x / CVE-2026-40151. The chat route directly calls agent.chat(request.message). No-auth and wrong-bearer requests both execute the deployed agent. This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents. This issue has been patched in version 4.6.59.
- Record
CVE-2026-57116- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-200, CWE-306, CWE-862
- Updated
- 2026-11-02
OSV
9.8
PraisonAI: AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
PraisonAI is a multi-agent teams system. From version 4.2.1 to before version 4.6.59, PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in current main and in releases after the published patched version for GHSA-pm96-6xpr-978x / CVE-2026-40151. The chat route directly calls agent.chat(request.message). No-auth and wrong-bearer requests both execute the deployed agent. This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents. This issue has been patched in version 4.6.59.
- Record
CVE-2026-57116- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-200, CWE-306, CWE-862
- Updated
- 2026-11-02
OSVGHSA-892r-p3jq-jp24
9.8
PraisonAI: AgentOS remains unauthenticated after incomplete fix version and allows remote agent invocation
AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
Summary
PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in
current main and in releases after the published patched version for
GHSA-pm96-6xpr-978x / CVE-2026-40151.
The public AgentOS advisory is published as an instruction-disclosure issue
with affected versions < 4.5.128 and patched version 4.5.128. However,
v4.5.128, latest release v4.6.57, and current main still register
GET /api/agents and POST /api/chat without authentication. The chat route
directly calls agent.chat(request.message). No-auth and wrong-bearer requests
both execute the deployed agent.
This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents.
Affected Product
- Repository:
MervinPraison/PraisonAI - Package:
praisonai - Component:
src/praisonai/praisonai/app/agentos.py - Config component:
src/praisonai-agents/praisonaiagents/app/config.py - Public advisory incomplete-fix reference:
GHSA-pm96-6xpr-978x/CVE-2026-40151
Confirmed affected dynamically:
v4.5.126v4.5.128(published patched version forGHSA-pm96-6xpr-978x)v4.6.9v4.6.10v4.6.56v4.6.57- current main
2f9677abb2ea68eab864ee8b6a828fd0141612e1
Static source review found the same unauthenticated route pattern and
0.0.0.0 default in v4.2.1.
Suggested affected range: >= 4.2.1, <= 4.6.57.
Root Cause
AgentOSConfig / AgentAppConfig defaults the deployment host to all
interfaces and has no authentication fields:
name: str = "PraisonAI App"
host: str = "0.0.0.0"
port: int = 8000
api_prefix: str = "/api"
AgentOS._register_routes() registers public agent metadata and chat routes
without middleware, dependency, API key check, bearer-token check, or startup
fail-closed guard:
@app.get(f"{self.config.api_prefix}/agents")
async def list_agents():
return {"agents": [...]}
@app.post(f"{self.config.api_prefix}/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
...
response = agent.chat(request.message)
A wrong Authorization header is ignored because the route does not inspect it.
Current main also has a root-export bug where from praisonai import AgentOS
raises ImportError, but this does not mitigate the issue. The same class
remains reachable through from praisonai import AgentApp and
from praisonai.app import AgentOS.
Why This Is Not Intended Behavior
PraisonAI's security documentation says API servers were hardened so anonymous
requests return 401 and default binding changed from 0.0.0.0 to
127.0.0.1 after the prior unauthenticated API server class.
The API Server Authentication docs say bearer auth is enabled by default,
disabling auth is not recommended for production, and 0.0.0.0 should be used
only behind an authenticating proxy.
The local PoV includes a hardened sibling control for the generated deploy API on current main. It returns:
- no auth:
401 - wrong bearer:
401 - correct bearer:
200
AgentOS remains outside that control plane and still accepts no-auth and
wrong-bearer /api/chat requests.
Local PoV
The PoV is local-only. It uses FastAPI's in-process test client, a stub agent, and a temporary file side effect. It does not start a network listener, call an LLM provider, or contact any external service.
Command:
env PYTHONPATH="artifacts/repos/praisonai-current/src/praisonai:artifacts/repos/praisonai-current/src/praisonai-agents" \
uv run --with fastapi --with httpx --with flask --with flask-cors \
--with pydantic --with typing-extensions --with rich --with python-dotenv \
…
- Record
GHSA-892r-p3jq-jp24- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-200, CWE-306, CWE-862
- Updated
- 2026-11-02
OSVPYSEC-2026-3507
9.8
PraisonAI: AgentOS remains unauthenticated after incomplete fix version and allows remote agent invocation
AgentOS remains unauthenticated after GHSA-pm96 patched version and allows remote agent invocation
Summary
PraisonAI's AgentOS FastAPI deployment surface remains unauthenticated in
current main and in releases after the published patched version for
GHSA-pm96-6xpr-978x / CVE-2026-40151.
The public AgentOS advisory is published as an instruction-disclosure issue
with affected versions < 4.5.128 and patched version 4.5.128. However,
v4.5.128, latest release v4.6.57, and current main still register
GET /api/agents and POST /api/chat without authentication. The chat route
directly calls agent.chat(request.message). No-auth and wrong-bearer requests
both execute the deployed agent.
This is broader than passive metadata disclosure. In any deployment where AgentOS wraps agents with tools, private context, memory, API integrations, or cost-bearing model calls, an unauthenticated reachable client can drive those agents.
Affected Product
- Repository:
MervinPraison/PraisonAI - Package:
praisonai - Component:
src/praisonai/praisonai/app/agentos.py - Config component:
src/praisonai-agents/praisonaiagents/app/config.py - Public advisory incomplete-fix reference:
GHSA-pm96-6xpr-978x/CVE-2026-40151
Confirmed affected dynamically:
v4.5.126v4.5.128(published patched version forGHSA-pm96-6xpr-978x)v4.6.9v4.6.10v4.6.56v4.6.57- current main
2f9677abb2ea68eab864ee8b6a828fd0141612e1
Static source review found the same unauthenticated route pattern and
0.0.0.0 default in v4.2.1.
Suggested affected range: >= 4.2.1, <= 4.6.57.
Root Cause
AgentOSConfig / AgentAppConfig defaults the deployment host to all
interfaces and has no authentication fields:
name: str = "PraisonAI App"
host: str = "0.0.0.0"
port: int = 8000
api_prefix: str = "/api"
AgentOS._register_routes() registers public agent metadata and chat routes
without middleware, dependency, API key check, bearer-token check, or startup
fail-closed guard:
@app.get(f"{self.config.api_prefix}/agents")
async def list_agents():
return {"agents": [...]}
@app.post(f"{self.config.api_prefix}/chat", response_model=ChatResponse)
async def chat(request: ChatRequest):
...
response = agent.chat(request.message)
A wrong Authorization header is ignored because the route does not inspect it.
Current main also has a root-export bug where from praisonai import AgentOS
raises ImportError, but this does not mitigate the issue. The same class
remains reachable through from praisonai import AgentApp and
from praisonai.app import AgentOS.
Why This Is Not Intended Behavior
PraisonAI's security documentation says API servers were hardened so anonymous
requests return 401 and default binding changed from 0.0.0.0 to
127.0.0.1 after the prior unauthenticated API server class.
The API Server Authentication docs say bearer auth is enabled by default,
disabling auth is not recommended for production, and 0.0.0.0 should be used
only behind an authenticating proxy.
The local PoV includes a hardened sibling control for the generated deploy API on current main. It returns:
- no auth:
401 - wrong bearer:
401 - correct bearer:
200
AgentOS remains outside that control plane and still accepts no-auth and
wrong-bearer /api/chat requests.
Local PoV
The PoV is local-only. It uses FastAPI's in-process test client, a stub agent, and a temporary file side effect. It does not start a network listener, call an LLM provider, or contact any external service.
Command:
env PYTHONPATH="artifacts/repos/praisonai-current/src/praisonai:artifacts/repos/praisonai-current/src/praisonai-agents" \
uv run --with fastapi --with httpx --with flask --with flask-cors \
--with pydantic --with typing-extensions --with rich --with python-dotenv \
…
- Record
PYSEC-2026-3507- CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
praisonaiPyPI |
4.2.1 to 4.6.57 | 4.6.59 |
praisonaiPyPI |
4.2.1 up to 4.6.59, plus listed versions 4.2.24.2.34.2.44.3.04.3.1 Show 45 moreShow less4.4.04.4.104.4.114.4.124.4.24.4.34.4.44.4.54.4.64.4.74.4.84.4.94.5.04.5.14.5.104.5.1004.5.1014.5.1024.5.1034.5.1044.5.1054.5.1064.5.1074.5.1084.5.1094.5.114.5.1104.5.1114.5.1124.5.1134.5.1144.5.1154.5.1174.5.1184.5.1194.5.124.5.1204.5.1214.5.1224.5.1234.5.1244.5.1254.5.1264.5.1274.5.128 |
4.6.59 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-57116 is a critical vulnerability (CVSS 9.8) in Mervinpraison Praisonai, published June 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.42%, the 36th percentile. Fixed in praisonai 4.6.59.
References
Left out here: 145 versions and the rest of 3 source descriptions. The JSON record has them.