Skip to main content

PraisonAI Agents CVE-2026-57123

| EUVDEUVD-2026-77539 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-09-14 GitHub_M GHSA-x227-pf99-vffg PYSEC-2026-3536
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed 0.0.0.0 SSE port or lure victim to malicious page
  2. Delivery
    Connect to /sse and /messages/ with no credentials
  3. Exploit
    List registered MCP tools via JSON-RPC
  4. Execution
    Invoke file/shell/code-execution tool
  5. Impact
    Achieve remote code execution on host

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 that an operator explicitly start the MCP SSE transport via ToolsMCPServer.run_sse() or launch_tools_mcp_server(transport='sse') in praisonaiagents < 1.6.59; both default host to 0.0.0.0, and the Starlette app is built with only debug and routes (no middleware= auth/origin gate), so exposure is the default once launched. Direct unauthenticated network exploitation requires only reachability to the listening port (default 8080) - no credentials, no user interaction. The DNS-rebinding variant additionally requires a victim to visit an attacker-controlled web page (user interaction) to reach a localhost-bound instance. The severity of impact is limited/amplified by which tools are registered: full RCE only applies when file, shell, or code-execution tools are registered; a benign tool set constrains impact to those tools' capabilities. Not triggered by merely importing the library - the SSE server must be running.

Impact

This is a genuine missing-authentication flaw (CWE-306) rather than an inflated high-CVSS score, but its real-world priority is moderated by strong deployment gates. The CVSS 9.8 vector (AV:N/AC:L/PR:N/UI:N, C:H/I:H/A:H) is defensible for the worst case: once ToolsMCPServer.run_sse or launch_tools_mcp_server(transport='sse') is started, it binds 0.0.0.0 by default and exposes /sse and /messages/ with no auth middleware and no Origin check, so any network-reachable client can list and invoke every registered tool with no credentials. The SecurityConfig/origin/DNS-rebinding controls exist in mcp_security.py but are dead code - confirmed by both the GHSA advisory and the fix commit that finally wires build_sse_security_app into run_sse. However, the signals diverge on urgency: EPSS is only 0.47% (40th percentile) and SSVC lists Exploitation as 'none' (no observed exploitation), even though Automatable=yes and Technical Impact=total. There is no CISA KEV listing and no weaponized exploit - only a static AST proof-of-concept in the advisory. Critically, impact is conditional: the advisory itself states blast radius 'equals the capabilities of the registered tools' - RCE only when file/shell/code-exec tools are registered. Exploitation also requires that an operator explicitly launch the SSE transport (not automatic on import). Net: a real, easily-automatable weakness worth prompt patching for anyone running the MCP SSE server, but the absence of active exploitation, low EPSS, and dependence on operator configuration place it below internet-facing mass-exploitation threats.

Exploit ScenarioDerived

A developer runs launch_tools_mcp_server(transport='sse') to expose PraisonAI tools (including file/shell/code-execution tools) over MCP; because it binds 0.0.0.0 with no authentication, any host on the network sends JSON-RPC calls to /messages/ to enumerate and invoke those tools, achieving code execution. Alternatively, a victim developer merely visits a malicious web page that uses DNS rebinding to point its hostname at 127.0.0.1 and drives the same tool calls against the local instance cross-origin. No public weaponized exploit exists - only a static AST-based proof in the GHSA advisory.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 16, 2026

Unauthenticated tool invocation and potential remote code execution in PraisonAI Agents (praisonaiagents) before 1.6.59, where the MCP SSE transport started by ToolsMCPServer.run_sse() or launch_tools_mcp_server(transport='sse') binds to 0.0.0.0 and builds its Starlette application with no authentication middleware and no Origin validation. Any client that can reach the listening port (default 8080) can list and invoke every registered tool without credentials, and because the bundled SecurityConfig, origin-validation and DNS-rebinding checks in mcp/mcp_security.py are never called, a malicious web page can rebind a hostname to 127.0.0.1 and drive the same JSON-RPC calls against a developer's local instance; the practical impact scales with the registered toolset and becomes full RCE where file, shell, or code-execution tools are exposed. Exposure is gated on an operator actually launching the SSE transport - merely importing the library is not sufficient - and no public exploit code has been identified at time of analysis (EPSS 0.47%, SSVC exploitation: none), with a vendor patch available in 1.6.59.

RemediationAI

Upgrade to praisonaiagents 1.6.59 - Vendor-released patch: 1.6.59 - as described in GHSA-x227-pf99-vffg (https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-x227-pf99-vffg) and implemented by commit 2adfe7e8323f6deec66925cf15a885b6238895e9, with the matching PraisonAI release at https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.59. Note that the patched code only activates _SSESecurityMiddleware through build_sse_security_app() when a SecurityConfig is passed explicitly or the environment variables MCP_SSE_AUTH_TOKEN (or MCP_AUTH_TOKEN) and MCP_SSE_ALLOWED_ORIGINS are set - without them the transport still binds 0.0.0.0 with no gate, so the upgrade must be paired with configuration: set MCP_SSE_AUTH_TOKEN to require a Bearer token on every request and MCP_SSE_ALLOWED_ORIGINS to enforce Origin validation (trade-off: clients must then send the token and present an allowed Origin, and browser-based integrations using unexpected origins will receive 401/403). If upgrading or configuring is not immediately possible, call run_sse(host="127.0.0.1") to remove the network path entirely (trade-off: remote agents can no longer connect), block the default listening port 8080 at the host firewall or security group (trade-off: no legitimate remote MCP clients either), and avoid registering file, shell, or code-execution tools on the SSE transport so that any unauthenticated caller is limited to benign tool capabilities. Operators should also confirm no matching MCP SSE instance was reachable during the exposure window, since the flaw provides no logging of unauthorized tool invocation by default.

Affected VersionsENISA

praisonaiagents < 1.6.59

Affected Packages

pypi praisonaiagents fix: 1.6.59

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw sits in the Model Context Protocol (MCP) server transport layer of praisonaiagents, tracked as CWE-306 (Missing Authentication for Critical Function) with CPE cpe:2.3:a:mervinpraison:praisonaiagents:*:*:*:*:*:*:*:*. In src/praisonai-agents/praisonaiagents/mcp/mcp_server.py, run_sse() defaults host to "0.0.0.0" and constructs a Starlette app with only the debug and routes keyword arguments - Route('/sse', endpoint=handle_sse) and Mount('/messages/', app=sse_transport.handle_post_message) - with no middleware= parameter and therefore no per-route authentication or Origin gate; uvicorn.run() then serves it on all interfaces, and launch_tools_mcp_server likewise defaults host to "0.0.0.0". The module mcp/mcp_security.py already defines the exact controls needed - is_valid_origin, is_potential_dns_rebinding, validate_auth_header and SecurityConfig.is_origin_allowed - but static AST analysis confirms these symbols are referenced only inside mcp_security.py and its __init__ re-export, i.e. dead code never invoked by any transport (the auth references in mcp_websocket.py are client-side). The practical consequence is an unauthenticated, network-reachable tool-execution endpoint whose blast radius equals the capabilities of the registered tools, plus a DNS-rebinding vector against localhost instances because no Origin header is checked. The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H confirms the direct network path needs no privileges and no user interaction; the rebinding variant additionally requires a victim to visit an attacker-controlled page. The 1.6.59 fix wires in a _SSESecurityMiddleware via build_sse_security_app(), but that helper returns the app unchanged when neither a SecurityConfig nor the new MCP_SSE_* environment variables are present, and it also hardens the approval registry so tools rated 'critical' are never auto-approved and adds 'format'/'format_map' to the Python sandbox blocklist.

Know when Praisonaiagents 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

Vendor (GitHub_M) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Once the default-0.0.0.0 SSE server is running it is network-reachable with no auth or interaction (AV:N/AC:L/PR:N/UI:N); C/I/A:H reflects the documented RCE when file/shell/code-exec tools are registered.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Sep 14, 2026 - 17:17 EUVD
CVE Published
Sep 14, 2026 - 14:46 cve.org
CRITICAL 9.8

DescriptionCVE.org

PraisonAI is a multi-agent teams system. Prior to praisonaiagents 1.6.59, ToolsMCPServer.run_sse and launch_tools_mcp_server bind to 0.0.0.0 and create /sse and /messages/ routes without invoking the available SecurityConfig authentication, origin-validation, or DNS-rebinding controls. Any reachable client can list and invoke registered tools, and a browser can target a local instance through DNS rebinding, with impact determined by the registered file, shell, and code-execution tools. This vulnerability is fixed in praisonaiagents 1.6.59.

Technical POC Analysis

CWE-306 missing authentication for a critical function.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

PraisonAI Agents, an open-source framework used to build AI tool-calling agents, ships a server mode that can expose every registered tool to any client able to reach its network port - or, on a developer workstation, to a malicious web page via DNS rebinding - including file, shell, and code-execution tools, which can escalate to full remote code execution. Leadership should care because affected instances are typically developer endpoints and internal build or automation hosts that hold source code, credentials, and pathways into production systems. Exposure is gated: an operator must have explicitly launched the SSE transport (default port 8080), merely importing the library is not sufficient, and no public exploit has been identified at time of analysis, so risk is concentrated in teams that have enabled this mode.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Low
niche, young multi-agent AI framework; limited production deployment footprint
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2026-55526 HIGH POC
8.5 Aug 25

SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou

CVE-2026-55528 HIGH POC
8.2 Aug 25

Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u

CVE-2026-55522 HIGH POC
7.8 Aug 05

Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d

CVE-2026-55530 MEDIUM POC
6.1 Aug 25

Unauthorized filesystem mutation in praisonaiagents allows an LLM-controlled agent to rewrite arbitrary on-disk source f

CVE-2026-57125 CRITICAL
9.8 Sep 14

Unauthenticated remote code execution in the PraisonAI multi-agent framework lets any network-reachable caller run arbit

CVE-2026-57118 CRITICAL
9.8 Oct 12

Unauthenticated remote agent enumeration and invocation in PraisonAI's AgentTeam.launch() / Agents.launch() HTTP server

CVE-2026-40288 CRITICAL
9.8 Apr 14

Arbitrary command and code execution in PraisonAI's workflow engine (versions <4.5.139) and praisonaiagents (<1.5.140) a

CVE-2026-40111 CRITICAL
9.3 Apr 09

Command injection in PraisonAIAgents memory hooks executor allows authenticated local attackers to execute arbitrary she

CVE-2026-40289 CRITICAL
9.1 Apr 14

Unauthenticated remote session hijacking in PraisonAI's browser bridge (versions <4.5.139) and praisonaiagents (<1.5.140

CVE-2026-57143 HIGH
8.8 Oct 12

Server-side request forgery in the SearxNG-backed search tools shipped with the praisonaiagents Python package before 1.

CVE-2026-44339 HIGH
8.6 May 08

Remote attackers can invoke arbitrary application callables in PraisonAI multi-agent systems by manipulating tool-call n

CVE-2026-40287 HIGH
8.4 Apr 14

Arbitrary Python code execution in PraisonAI ≤4.5.138 occurs when malicious tools.py files are automatically imported fr

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy