Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAttacker embeds malicious output_file path in repo's .praisonai/config.toml
-
DeliveryDeveloper clones repository to local workstation
-
ExploitPraisonAI auto-loads config.toml on Agent construction without path validation
-
ExecutionDeveloper calls agent.start() omitting explicit output parameter
-
PersistPraisonAI resolves traversal path and creates parent directories
-
ImpactAgent LLM response written to attacker-specified path outside project root
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 | The attacker must control a repository cloned by the victim, and that repository must contain a |
| Impact | The vendor-assigned CVSS 4.0 score of 6.9 and local attack vector (AV:L) accurately reflect the supply-chain nature of this flaw - the attacker's 'access' is limited to pushing a malicious config into a repository that a developer then clones and uses. However, the vendor's CVSS 4.0 impact metrics (VC:H/VI:N/VA:N) appear inconsistent with the described impact: the vulnerability's primary effect is writing arbitrary content to attacker-chosen paths, which is a high-integrity violation (VI should be H, not N); the VC:H rating is not supported by the provided description and likely reflects a scoring error - security teams should treat this as a high-integrity-impact flaw rather than a confidentiality one. No EPSS score or CISA KEV listing is present in the available intelligence, so neither exploitation probability nor confirmed active exploitation can be quantified. AC:L and AT:N correctly indicate that no race condition or specialized configuration is needed beyond the cloned repository containing the malicious config file. The practical risk is concentrated among developers and CI/CD pipelines that clone and execute PraisonAI projects from untrusted or lightly-reviewed sources; organizations that build internal tooling on top of PraisonAI and process community-contributed agent projects are the highest-risk cohort. |
| Exploit ScenarioDerived | An attacker publishes a public AI agent project repository containing a |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 10, 2026
Path traversal in PraisonAI (pip package praisonaiagents) before version 1.6.78 allows an untrusted checked-out repository to overwrite arbitrary files on a developer's machine by embedding a malicious .praisonai/config.toml that sets defaults.output.output_file to an absolute or directory-traversal path. When the developer subsequently constructs an Agent and calls agent.start() without an explicit output parameter, PraisonAI resolves the attacker-supplied path - creating parent directories as needed - and writes agent output there with the privileges of the running user. No public exploit code or CISA KEV listing has been identified; a vendor patch at version 1.6.78 and an upstream fix commit are available per GitHub Security Advisory GHSA-qjw5-xwrp-xwpq.
RemediationAI
Upgrade to praisonaiagents version 1.6.78 or later via pip install --upgrade praisonaiagents; the upstream fix is documented in commit 3aa9cbc2bd49c23a32be0a89a5e620d13d843eab (https://github.com/MervinPraison/PraisonAI/commit/3aa9cbc2bd49c23a32be0a89a5e620d13d843eab) and the full advisory is at https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-qjw5-xwrp-xwpq. As a compensating control before patching, inspect any .praisonai/config.toml present in a project directory before invoking PraisonAI, specifically auditing the defaults.output.output_file key for absolute paths or .. segments; deleting or blanking this key eliminates the attack surface with no impact on callers that pass output explicitly to agent.start(). For CI/CD pipelines that process untrusted repositories, run PraisonAI inside a container or VM with a restricted filesystem view - mounting only the project directory and denying writes to paths outside it - which constrains the blast radius of any traversal attempt to within the sandbox.
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-based AI agent orchestration framework distributed as the praisonaiagents pip package (CPE cpe:2.3:a:mervinpraison:praisonai:*:*:*:*:*:*:*:*). The framework automatically discovers and loads defaults from a project-local .praisonai/config.toml file at Agent construction time. The root cause is CWE-22 (Path Traversal): the defaults.output.output_file configuration key is accepted verbatim without canonicalization or confinement to the project directory. The framework resolves whatever path the config specifies - including absolute paths such as /etc/cron.d/backdoor or traversal sequences such as ../../.ssh/authorized_keys - and writes the LLM agent response there when agent.start() is called without an overriding output argument. The automatic creation of parent directories further amplifies the primitive to include arbitrary directory creation. The attack is a supply-chain trust boundary violation: the .praisonai/config.toml file is expected to be project-controlled, but the framework does not distinguish between developer-authored and attacker-supplied project files when resolving output paths.
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
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
AV:L and PR:N because attacker influence is via a cloned repo config; UI:R since victim must run agent.start(); S:C and I:H for cross-boundary arbitrary file write; C:N as no confidentiality impact is described.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
PraisonAI (pip package praisonaiagents) before 1.6.78 automatically loads defaults from a project-local .praisonai/config.toml when constructing an Agent, and does not validate the defaults.output.output_file path. A repository-controlled config file can set output_file to an absolute or '..' traversal path; when the developer subsequently calls agent.start() without explicitly passing an output parameter, PraisonAI writes the agent response to that path (creating parent directories as needed), allowing an untrusted checked-out project to overwrite files outside the project root with the privileges of the user running PraisonAI.
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.
Remote code execution in PraisonAI before 1.6.78 allows attackers to run arbitrary Python on the host by manipulating th
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
System prompt extraction and unauthorized tool invocation in PraisonAI before 4.6.78 arise because the prompt-injection
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
Server-side request forgery in PraisonAI's Crawl4AI/Chromium crawling backend (all versions before 1.6.78) lets low-priv
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
EUVD-2026-42895
GHSA-qjw5-xwrp-xwpq
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB