Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to PraisonAI-backed application
-
DeliveryCraft user_id with ../ traversal sequence
-
ExploitSubmit user_id via API or Agent constructor
-
ExecutionFileMemory joins traversal string to base_path
-
PersistLibrary creates directories and writes JSON files at attacker-chosen location
-
ImpactLeverage written file for persistence or further impact
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the attacker control or influence the user_id argument passed to the FileMemory constructor or to the Agent constructor's memory configuration. In a single-user local deployment where user_id is hardcoded, exploitation is not possible without pre-existing local access. In a multi-tenant or API-facing deployment where user_id is derived from user-supplied input (e.g., a session identifier, username, or API parameter), any authenticated API caller can exploit the flaw without further privileges. The exploit works on both Linux and Windows due to pathlib's cross-platform path resolution. No special non-default configuration is required - the FileMemory class is a standard library component. Limiting factors: PR:L means unauthenticated exploitation is not possible; S:U means the attack cannot directly escape the process privilege boundary to affect other systems beyond what the process account can write. |
| Impact | The NVD CVSS 7.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L) characterizes this as network-reachable, low-complexity, low-privilege exploitation with high integrity impact. The PR:L rating is the key limiting factor: an attacker must already hold some level of authenticated access to invoke the FileMemory API or the Agent constructor that calls it. There is no confidentiality impact - the attack writes data, it does not read arbitrary files. The A:L score reflects the risk of overwriting existing files. No EPSS score was provided in the intelligence; no CISA KEV listing exists, confirming no known active exploitation. A detailed PoC is embedded in the GHSA advisory itself, significantly lowering the bar for exploitation by any authenticated caller. Real-world risk is contingent on deployment architecture: applications that accept user_id from untrusted network input (e.g., a multi-tenant API) face meaningful write-anywhere risk, whereas tightly controlled internal deployments face negligible exposure. The CVSS network vector is consistent with how the library would be consumed in a hosted agent service. |
| Exploit ScenarioDerived | An attacker with low-privileged access to a multi-tenant application that exposes PraisonAI agent functionality sends a request with user_id set to '../../etc/cron.d/backdoor', causing praisonaiagents to create that directory path and write a JSON file there - potentially disrupting system integrity or, on permissive cron configurations, achieving code execution. A full PoC demonstrating the direct Python API path ( |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 25, 2026
Path traversal in praisonaiagents prior to 1.6.58 allows a low-privileged caller to write arbitrary JSON files to any process-writable filesystem location by supplying a crafted user_id containing ../ sequences to the FileMemory constructor. All versions of the praisonaiagents pip package below 1.6.58 are affected; the vulnerability exists in the core library's FileMemory class, not an example or optional component. A detailed proof-of-concept is included in the GitHub Security Advisory (GHSA-gxmw-5f7x-6g22), and no public exploit identified at time of analysis beyond that PoC; no CISA KEV listing exists.
RemediationAI
Upgrade praisonaiagents to version 1.6.58 or later via pip install --upgrade praisonaiagents. This version introduces the _sanitise_user_id() method that raises ValueError on user_id values containing '..', '/', or '\', preventing path traversal before any filesystem operation. The fix commit is 2f9677abb2ea68eab864ee8b6a828fd0141612e1 and the patched release is tagged at https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.58. If immediate upgrade is not possible, the primary compensating control is to validate and sanitize the user_id value in application code before passing it to FileMemory or any Agent constructor, rejecting inputs containing '..', '/', or '\' - this mirrors the fix exactly and has no functional side-effects for well-formed user identifiers. Additionally, running the praisonaiagents process under a dedicated low-privilege OS account with write access restricted only to the intended memory directory limits blast radius but does not eliminate the traversal. Vendor advisory: https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-gxmw-5f7x-6g22.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in pypi, euvd
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 multi-agent orchestration framework whose praisonaiagents package (CPE: cpe:2.3:a:mervinpraison:praisonai:*:*:*:*:*:*:*:*) provides a FileMemory class for persisting agent memory to disk. The vulnerability (CWE-22: Path Traversal) arises in file_memory.py line 145, where the constructor executes self.user_path = self.base_path / user_id using Python pathlib's division operator without any prior sanitization of user_id. Because pathlib on both Linux and Windows resolves sequences such as ../../ during path construction, an attacker-controlled user_id bypasses the intended base_path boundary and causes the library to mkdir and write five JSON memory files (config.json, short_term.json, long_term.json, entities.json, summaries.json) at the traversed location. A sister class, SQLiteBackend in backends.py, correctly validates its equivalent parameter with a regex allowlist - demonstrating the fix pattern was known in the codebase but not applied to FileMemory. The patch (commit 2f9677a) adds a _sanitise_user_id() static method that raises ValueError if user_id contains '..', '/', or '\'.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Network vector confirmed by library's API-facing use; PR:L because caller must supply user_id via authenticated access; no confidentiality impact as attack only writes files.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI is a multi-agent teams system. Prior to praisonaiagents 1.6.58, the FileMemory constructor joins unsanitized user_id into self.user_path. A caller supplying ../ or path separators can escape the memory directory and write JSON data to arbitrary process-writable locations. The fix sanitizes user_id before constructing self.user_path. This issue is fixed in version 1.6.58.
Executive ViewAI
praisonaiagents (Python package, all versions prior to 1.6.58) contains a file-write vulnerability that could allow an attacker to alter application configuration or inject malicious code through crafted user inputs. This affects all organizations running this AI agent framework and poses risk of application compromise, data exposure, and potential breach of system integrity depending on file permissions and deployment architecture.
Enforce input validation to reject malformed user identifiers containing path manipulation characters. Apply filesystem permissions restrictions using OS-level access controls to limit the application process to designated temporary directories only. Run the application under a dedicated non-root service account with minimal privilege. Enable filesystem audit logging on sensitive directories to detect and alert on suspicious write attempts. Consider containerization with restricted volume mounts to further isolate affected processes.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
PraisonAI's TypeScript MCP server (npm package `praisonai`, versions 1.5.0 through 1.7.1) exposes an HTTP JSON-RPC trans
WebSocket origin-validation bypass in PraisonAI's Browser Server (praisonai/browser/server.py) before 4.6.58 lets an att
PraisonAI's `praisonai serve` subsystem (agents and unified modes) accepts an `--api-key` CLI flag that is parsed but ne
Unauthenticated remote agent invocation in PraisonAI versions 4.6.34 through 4.6.57 allows any network-reachable caller
SSRF protection bypass in PraisonAI's praisonaiagents library (all versions before 1.6.58) lets low-privileged users rou
Authentication fail-open in PraisonAI's Recipe HTTP server allows unauthenticated remote attackers to invoke recipe exec
Authentication bypass in PraisonAI's AgentServer component exposes all routes - /publish, /events, /info, /health - to u
Arbitrary Python code execution in PraisonAI's workflow include feature allows an attacker who controls a local recipe d
Server-side request forgery in PraisonAI's web_crawl() function (versions 1.5.128-1.6.57) allows an attacker who can inf
Cross-site request forgery against the PraisonAI MCP HTTP-stream transport allows unauthenticated remote attackers to ex
Remote unauthenticated access to PraisonAI's legacy Flask API server allows attackers to execute configured agent workfl
Server-Side Request Forgery in PraisonAI before version 4.6.58 allows unauthenticated remote attackers to force the appl
EUVD-2026-65520
GHSA-gxmw-5f7x-6g22
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB