Skip to main content

PraisonAI CVE-2026-44336

| EUVDEUVD-2026-28639 CRITICAL
Improper Input Validation (CWE-20)
2026-05-08 security-advisories@github.com GHSA-9mqq-jqxf-grvw
9.4
CVSS 4.0 · GitHub Advisory
View

Attack ChainAIDerived

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

  1. Access
    Craft malicious MCP JSON-RPC request
  2. Delivery
    User/agent triggers tool call with traversal path
  3. Exploit
    Server writes .pth file to site-packages
  4. Execution
    User spawns new Python process
  5. Persist
    Interpreter executes .pth payload
  6. Impact
    Arbitrary code runs as user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Requires the PraisonAI MCP server component to be actively running via 'praisonai mcp serve' command - this is NOT enabled by default and must be explicitly started by the user. The victim user or an AI agent under their control must invoke one of the vulnerable MCP tools (praisonai.rules.create, praisonai.rules.delete, or praisonai.workflow.show) with attacker-controlled path arguments, typically through a compromised AI workflow, malicious integration, or social engineering of the user to process untrusted MCP commands. The running user must have write permissions to Python site-packages directories (~/.local/lib/python*/site-packages on Linux/macOS or AppData\Roaming\Python on Windows) for full code execution escalation; without site-packages access, the impact reduces to arbitrary file write in user-writable locations. Exploitation is limited to scenarios where MCP tool call parameters can be influenced by untrusted sources, which constrains the attack to multi-tenant AI platforms, AI agent systems processing external inputs, or environments where users are tricked into running malicious MCP commands.

Impact

Real-world risk requires careful contextualization of the 9.4 CVSS score. The CVSS:4.0 vector shows maximum impact (VC:H/VI:H/VA:H/SC:H/SI:H/SA:H) across confidentiality, integrity, and availability for both vulnerable and subsequent systems, indicating full system compromise potential. Attack vector is network-based (AV:N) with low complexity (AC:L) and no required privileges (PR:N), but critically requires user interaction (UI:P) - the user must trigger MCP tool calls with attacker-controlled arguments, likely through a compromised AI agent workflow or social engineering. No EPSS score provided, but absence from CISA KEV and no public POC suggests limited current exploitation. The detailed GitHub security advisory (GHSA-9mqq-jqxf-grvw) provides exploitation mechanics, lowering the barrier for capable attackers. Primary risk is in environments where untrusted users or AI agents can invoke PraisonAI MCP tools with arbitrary parameters, particularly multi-tenant AI development platforms or systems processing untrusted AI workflows. Organizations not running the mcp serve component or not exposing MCP tool calls to untrusted sources face minimal risk despite the high CVSS.

Exploit ScenarioDerived

An attacker crafts a malicious MCP tool call JSON-RPC request targeting a PraisonAI MCP server, setting rule_name parameter to '../../.local/lib/python3.11/site-packages/malicious.pth' in the praisonai.rules.create tool. The server writes attacker-controlled content (Python code) to this traversed path without validation. When the victim user next launches any Python process (running 'praisonai' command, opening a Python IDE, or executing background Python services), the Python interpreter loads malicious.pth during initialization and executes the embedded code with the user's full privileges, establishing persistence and potentially pivoting to other systems accessible from the compromised account.

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

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

Alert me

AnalysisAIv1 – May 08, 2026

Arbitrary file write in PraisonAI's MCP server escalates to remote code execution through path traversal when user interaction triggers malicious tool calls. The praisonai mcp serve daemon accepts attacker-controlled path arguments without validation, allowing writes outside the intended ~/.praison/rules/ directory. Attackers can drop Python .pth files into site-packages to achieve code execution in any subsequent Python process run by the victim user. CVSS 9.4 with network vector and low complexity, though exploitation requires user interaction (PR:N/UI:P). No active exploitation confirmed (not in CISA KEV) and no public POC identified at time of analysis, but the detailed advisory provides sufficient information for weaponization.

RemediationAI

Upgrade to PraisonAI version 4.6.34 or later, which patches the path traversal vulnerability through input validation and path containment checks in MCP tool handlers. Installation via pip: 'pip install --upgrade praisonai>=4.6.34'. If immediate patching is not possible, implement these compensating controls with noted trade-offs: (1) Disable the MCP server component entirely by not running 'praisonai mcp serve' - this breaks MCP-dependent workflows but eliminates the attack surface. (2) Run the MCP server under a restricted user account with no write access to Python site-packages directories (typically ~/.local/lib/python*/site-packages or system /usr/lib/python*) - this prevents privilege escalation to code execution but still allows arbitrary file writes in user-writable locations, potentially corrupting application data. (3) Deploy mandatory access control (AppArmor/SELinux profiles) restricting the praisonai process from writing outside ~/.praison/ - requires kernel-level MAC support and custom profile development. Verify the patch by reviewing https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-9mqq-jqxf-grvw for the specific commit implementing path validation.

Affected VersionsENISA

PraisonAI < 4.6.34

Affected Packages

pypi praisonai fix: 4.6.34

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

PraisonAI implements a Model Context Protocol (MCP) server that exposes file-handling tools through JSON-RPC interfaces. The vulnerability stems from CWE-20 (Improper Input Validation) where the server's tool handlers (praisonai.rules.create, praisonai.rules.show, praisonai.rules.delete, praisonai.workflow.show) accept filename parameters and perform path concatenation using os.path.join or similar without canonicalization or containment checks. The JSON-RPC dispatcher passes params['arguments'] directly to handler functions via **kwargs unpacking, bypassing any schema validation that may exist in the tool definitions. Python's site-packages .pth mechanism executes arbitrary code during interpreter initialization by processing each line as executable Python or as import statements, converting a path traversal primitive into reliable code execution. This affects the PraisonAI Python package when the MCP server component is running.

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

GitHub Advisory PRIMARY 9.4 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from GitHub Advisory · only source for this CVE.

CVSS VectorGitHub Advisory

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
May 08, 2026 - 15:17 EUVD
CVE Published
May 08, 2026 - 14:16 nvd
CRITICAL 9.4

DescriptionGitHub Advisory

PraisonAI is a multi-agent teams system. Prior to version 4.6.34, PraisonAI's MCP (Model Context Protocol) server (praisonai mcp serve) registers four file-handling tools by default - praisonai.rules.create, praisonai.rules.show, praisonai.rules.delete, and praisonai.workflow.show. Each accepts a path or filename string from MCP tools/call arguments and joins it onto ~/.praison/rules/ (or, for workflow.show, accepts an absolute path) with no containment check. The JSON-RPC dispatcher passes params["arguments"] blind to each handler via **kwargs without validating against the advertised input schema. By setting rule_name="../../<some-path>" an attacker walks out of the rules directory and writes any file the running user can write. Dropping a Python .pth file into the user site-packages directory escalates this primitive to arbitrary code execution in any subsequent Python process the user spawns - the next praisonai CLI invocation, an IDE script run, the user's python REPL, or any background Python service. This issue has been patched in version 4.6.34.

Executive ViewAI

Why It Matters

CVE-2026-44336 is a critical arbitrary file write vulnerability in PraisonAI's MCP server that allows unauthenticated attackers to achieve remote code execution on systems running the affected daemon. An attacker can manipulate file paths to write malicious Python files into system directories, compromising any Python processes executed by the victim user. This poses significant risk to organizations using PraisonAI for AI-assisted development or automation, as successful exploitation grants persistent code execution capabilities.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable praisonai mcp serve daemon entirely until patch availability; (2) If daemon must remain active, enforce strict input validation on tool call parameters and reject any path arguments containing traversal sequences (../, .., encoded variants); (3) Restrict daemon execution to isolated user accounts with minimal Python package directories; (4) Monitor site-packages directories for unauthorized .pth file creation; (5) Implement file integrity monitoring on Python installation directories.

Threat Intelligence Overview

EPSS Score
0.1%
Top 79% exploitable
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.1%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

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

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

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