Skip to main content

PraisonAI CVE-2026-57125

| EUVDEUVD-2026-77531 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-09-14 GitHub_M GHSA-4869-x4pr-q22x PYSEC-2026-3501 PYSEC-2026-3529
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 Jobs API port (8005)
  2. Delivery
    POST /api/v1/runs with crafted agent_yaml
  3. Exploit
    'approve' field bypasses @require_approval gate
  4. Execution
    Agent invokes execute_command tool
  5. Persist
    Arbitrary OS commands run on host
  6. Impact
    Full server compromise

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 only that the PraisonAI Jobs API (POST /api/v1/runs, default port 8005) be network-reachable - it enforces no token or session, matching PR:N. There are no non-default configuration prerequisites: the vulnerable endpoint ships without the verify_token dependency used by the authenticated agent_invoke endpoint, and the 'approve' YAML field bypass works against the default @require_approval safety decorator on execute_command. The only real limiting factor is deployment exposure: the Jobs API must be running and accessible to the attacker (internet- or network-exposed), and the agent must have the execute_command (critical) tool available. No user interaction, credentials, or operator approval is needed.

Impact

This is a genuine top-priority vulnerability, and the CVSS 9.8 is well-calibrated rather than inflated. The vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H is fully consistent with the description and the vendor advisory: a network-reachable, unauthenticated endpoint (POST /api/v1/runs, missing the Depends(verify_token) present on the sibling authenticated endpoint) chains with an approval-decorator bypass (attacker-controlled top-level 'approve' YAML field pre-marks execute_command as approved before @require_approval's critical-risk check) to yield arbitrary OS command execution - i.e., full C/I/A on the host. SSVC reinforces this: Exploitation:poc, Automatable:yes, Technical Impact:total. A working PoC (curl one-liner) is embedded in the GHSA advisory, so publicly available exploit code exists. The one signal that runs slightly counter is EPSS at 0.41% (35th percentile), which is modest - but EPSS reflects observed/predicted mass-exploitation volume for a niche package, not the ease of exploitation, so it should not lower the operational priority for anyone actually running the Jobs API. There is no CISA KEV listing, so despite the trivial, automatable, unauthenticated RCE this is not yet confirmed as actively exploited in the wild; it should be treated as imminently exploitable rather than known-exploited.

Exploit ScenarioDerived

A remote attacker with no credentials sends a single crafted HTTP POST to the exposed PraisonAI Jobs API (/api/v1/runs) containing an agent_yaml payload that both defines a workflow invoking execute_command and includes a top-level 'approve: [execute_command]' entry, which silently neutralizes the critical-tool approval gate. The configured LLM agent then runs the attacker's OS commands on the server with no operator interaction. A functional proof-of-concept curl request is published in the GHSA-4869-x4pr-q22x advisory, making exploitation trivial to reproduce.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.4% 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 remote code execution in the PraisonAI multi-agent framework lets any network-reachable caller run arbitrary operating-system commands on servers exposing the Jobs API. The attack chains two defects: the POST /api/v1/runs endpoint ships without the verify_token dependency used by the authenticated agent_invoke endpoint (PR:N, no credentials or session required), and an attacker-supplied top-level 'approve' field in the submitted agent_yaml is loaded into a ContextVar that the @require_approval decorator consults before any risk-level check, so listing 'execute_command' makes the critical-tool approval gate a no-op with no operator interaction (CVSS 3.1 9.8, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, CWE-306). Affected releases are praisonai through 4.6.48 and praisonaiagents prior to 1.6.59, both fixed in 4.6.59 and 1.6.59 respectively; publicly available exploit code exists (a curl-based PoC is published in the GHSA advisory) and CISA's SSVC assessment rates the issue automatable with total technical impact, although no confirmed active exploitation (CISA KEV) has been reported and the current EPSS score is low at 0.41% (35th percentile).

RemediationAI

Vendor-released patch: upgrade to praisonai 4.6.59 and praisonaiagents 1.6.59 (commit 2adfe7e8323f6deec66925cf15a885b6238895e9), which makes is_yaml_approved return False for any tool whose risk level is 'critical' so the YAML 'approve' field can no longer neutralize @require_approval on execute_command. Because the Jobs API itself is intentionally unauthenticated in the vulnerable build, treat the patch as mandatory rather than optional; see https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-4869-x4pr-q22x and https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.59 for details. If immediate upgrade is not possible, the most effective compensating control is to stop exposing POST /api/v1/runs on port 8005: bind the Jobs service to localhost or an internal interface, block the port at the perimeter/firewall, or front it with an authenticating reverse proxy that requires credentials - the trade-off is that legitimate job submission also becomes unreachable or must be re-pointed through the proxy. Alternatively, remove or disable the execute_command tools from deployed agent YAML configurations and any other critical-risk tools so the bypass has no dangerous target, accepting reduced agent functionality; the same release's optional MCP_SSE_AUTH_TOKEN/MCP_SSE_ALLOWED_ORIGINS SSE middleware and the PRAISONAI_JOBS_AGENT_ROOT / PRAISONAI_INSECURE_WEBHOOKS hardening flags address adjacent exposure but do not by themselves close the unauthenticated /api/v1/runs entry point.

Affected VersionsENISA

praisonaiagents < 1.6.59
PraisonAI < 4.6.59

Affected Packages

pypi praisonai fix: 4.6.59
pypi praisonaiagents fix: 1.6.59

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in pypi

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

Technical ContextAI · show details

PraisonAI is a Python (pip) multi-agent orchestration framework distributed as two packages - praisonai (the server/jobs layer) and praisonaiagents (the agent runtime) - and the flaw lives in the intersection of an HTTP API and a YAML-driven tool-approval system. Root cause class is CWE-306 (Missing Authentication for Critical Function): the FastAPI router in src/praisonai/praisonai/jobs/router.py declares the POST /api/v1/runs handler with only a JobSubmitRequest body and omits the Depends(verify_token) guard that the parallel agent_invoke.py endpoint correctly applies, so an unauthenticated JSON request carrying an attacker-controlled agent_yaml is executed as a job. The second link is a logic-order defect in the approval subsystem: yaml_parser.py reads an attacker-controlled 'approve' list (line 261) and assigns it to workflow.approve_tools (line 370); workflows.py (line 1025) then calls set_yaml_approved_tools(approve_tools) to populate a ContextVar, and approval/__init__.py (line 179) checks is_yaml_approved(tool_name) and returns func(*args, **kwargs) before consulting the tool's risk level. Because the YAML-approved check precedes the @require_approval(risk_level="critical") evaluation, declaring 'approve: [execute_command]' in the submitted YAML grants the LLM agent unrestricted shell execution. The upstream commit 2adfe7e8323f6deec66925cf15a885b6238895e9 hardens this by short-circuiting is_yaml_approved to return False when get_risk_level(tool_name) == "critical" (registry.py), and the same release adds defense-in-depth changes: optional Bearer-token and Origin validation middleware for the MCP SSE server (MCP_SSE_AUTH_TOKEN / MCP_SSE_ALLOWED_ORIGINS, mcp_security.py, mcp_server.py), fail-closed webhook verification unless PRAISONAI_INSECURE_WEBHOOKS is set, a PRAISONAI_JOBS_AGENT_ROOT path-traversal guard (validate_agent_file_path), and an expanded python_tools attribute denylist (adding 'format', 'format_map').

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

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

Network-reachable, unauthenticated endpoint with no user interaction and a trivial, deterministic approval bypass yielding arbitrary OS command execution, so full C/I/A; scope unchanged as commands run within the server's own authority.

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:19 cve.org
CRITICAL 9.8

DescriptionCVE.org

PraisonAI is a multi-agent teams system. Prior to praisonai 4.6.59 and praisonaiagents 1.6.59, the unauthenticated POST /api/v1/runs Jobs API accepts attacker-controlled agent_yaml, and the approve field can mark execute_command as YAML-approved before @require_approval checks critical tools. This chain allows a remote caller to cause a configured language model agent to invoke arbitrary operating-system commands without credentials or operator interaction. This vulnerability is fixed in praisonai 4.6.59 and praisonaiagents 1.6.59 as fixed versions.

Technical POC Analysis

Two defects chain together.

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, an open-source multi-agent orchestration framework, contains a critical unauthenticated remote code execution flaw in its Jobs API that allows any party capable of reaching the service over the network to execute arbitrary operating-system commands on the host without credentials or user interaction. Organizations running any affected version - and particularly those exposing the Jobs API beyond a trusted internal boundary - should treat this as a full host-compromise risk affecting the confidentiality, integrity, and availability of the systems and data the framework can reach. Because the flaw is remotely triggerable by an unauthenticated caller and public proof-of-concept exploit code is already circulating, remediation urgency is driven by exposure and blast radius rather than by any observed attack activity.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche open-source multi-agent AI framework, limited production/enterprise 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.4%
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
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very 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-61447 CRITICAL POC
10.0 Jul 11

Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th

CVE-2026-57139 CRITICAL POC
9.8 Sep 15

PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans

CVE-2026-55536 CRITICAL POC
9.1 Aug 25

WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att

CVE-2026-55541 HIGH POC
8.8 Aug 25

PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne

CVE-2026-61439 HIGH POC
8.7 Jul 11

System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection

CVE-2026-55534 HIGH POC
8.6 Aug 25

Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller

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-61429 HIGH POC
8.4 Jul 11

Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv

CVE-2026-55533 HIGH POC
8.2 Aug 25

Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec

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-55523 HIGH POC
7.7 Aug 05

Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf

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