Skip to main content

PraisonAI CVE-2026-56834

| EUVDEUVD-2026-108875 HIGH
Path Traversal (CWE-22)
2026-10-23 GitHub_M GHSA-j7qx-p75m-wp7g PYSEC-2026-3514
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Access exposed PraisonAI agent endpoint
  2. Delivery
    Supply crafted prompt/tool argument with host path
  3. Exploit
    Invoke artifact_head/tail/grep/chunk on unvalidated path
  4. Execution
    Read file outside artifact base directory
  5. Impact
    Exfiltrate .env/credentials/SSH keys

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 the application to have enabled the Dynamic Context Discovery feature and to have constructed its Agent with tools=ctx.get_tools() (from setup_dynamic_context()), so that artifact_head, artifact_tail, artifact_grep, and artifact_chunk are callable; it is NOT present in PraisonAI deployments that do not wire up these artifact helper tools. The attacker must be able to influence those tool arguments (via prompt, user, or tool-caller input) and supply the target path - typically an absolute path or a known/guessable host path such as a project .env file, cloud credential file, SSH key, source file, or prior-run terminal/history artifact. Limiting factors: disclosure is restricted to files readable by the PraisonAI process UID; the issue is read-only (no integrity or availability impact); and network/unauthenticated reachability applies only when the agent is exposed over a public chat/API surface - deployments that gate agent access behind authentication reduce this to an authenticated-attacker issue (vendor suggests PR:L).

Impact

This is a genuine but deployment-conditional confidentiality issue rather than a universally remote-exploitable critical flaw. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N = 7.5) treats it as network-reachable, unauthenticated, low-complexity with high confidentiality impact and no integrity/availability effect, which is consistent with CWE-22/CWE-200 arbitrary host-file read. However, the network/unauthenticated framing is contingent: the advisory itself states AV:N and PR:N apply only when an application exposes a PraisonAI agent over a network chat/API surface AND wires up ctx.get_tools() from Dynamic Context Discovery, and that authenticated deployments should score PR:L - so the real-world attack surface is narrower than the raw 7.5 suggests. No EPSS score is provided and the CVE is not in CISA KEV, so there is no signal of widespread or active exploitation; the vuln.today Decision label is 'this_week', indicating prioritized but not emergency remediation. A local PoV is documented in the GHSA (positive control plus outside-base-dir reads of head/grep/chunk), so the mechanism is demonstrably real, but this is proof-of-concept against the library - not evidence of in-the-wild use. Net: patch this week for any deployment that actually exposes Dynamic Context Discovery artifact tools to lower-trust input; for deployments that do not enable those tools or only expose them to trusted operators, real risk is substantially lower than the CVSS number implies.

Exploit ScenarioDerived

An organization runs a public or multi-tenant PraisonAI chat/agent endpoint whose agent was built with tools=ctx.get_tools() from setup_dynamic_context(). A lower-trust user sends a prompt that induces the agent to call artifact_head (or artifact_tail/grep/chunk) with an absolute path such as /app/.env or ~/.ssh/id_rsa, and the tool reads and returns the file contents because no base-directory containment or artifact-metadata check is enforced. A local PoV in the advisory confirms the behavior against PyPI 4.6.58, reading a secret file placed outside the configured artifact base directory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
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 – Oct 23, 2026

PraisonAI 3.8.1 through 4.6.58 lets an attacker who can influence the arguments of the Dynamic Context Discovery artifact helper tools read arbitrary files from the host running the PraisonAI process. The artifact_head, artifact_tail, artifact_grep and artifact_chunk helpers accept a caller-supplied artifact_path and wrap it straight into an ArtifactRef without checking that the path lies under the configured artifact base directory or was actually produced by the artifact store, so an absolute path such as a project .env file, cloud credential, SSH key or source file is read back verbatim. The flaw only exists in deployments that enable setup_dynamic_context() and pass ctx.get_tools() to an Agent, and because the score assumes the agent is exposed over a network surface with unauthenticated prompts (CVSS:3.1/AV:N/AC:L/PR:N/UI:N with confidentiality-only impact), authentication gating on that surface would lower the practical risk. The issue is patched in 4.6.59; the vendor advisory contains a local-only proof-of-value script, it is not verified as working exploit code against a remote deployment, and there is no KEV listing.

RemediationAI

Upgrade the praisonai package to 4.6.59, the version in which the vendor fixed the issue (vendor advisory: https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-j7qx-p75m-wp7g); no backport to the 3.8.x, 4.0.x or 4.5.x lines is documented. The vendor's recommended hardening is to stop passing raw filesystem paths to artifact tools: accept artifact_id plus optional run_id and agent_id and resolve them through the store's metadata/index, or, if path arguments must be kept for compatibility, resolve the supplied path and reject it unless it falls under artifact_store.base_dir.resolve(), and require a valid .meta sidecar so files not created by FileSystemArtifactStore.store() are unreadable through the tools, applying the same containment to load(), head(), tail(), grep(), chunk() and delete(). Until the upgrade is deployed, the effective compensating control is to not expose the artifact helper tools to untrusted or lower-trust prompts at all, i.e. omit ctx.get_tools() from agents reachable by external users, which removes the documented large-output exploration capability for those agents; where the feature is required, gate the agent's chat/API surface behind authentication and input review, which reduces but does not eliminate the exposure because any principal able to influence tool arguments can still request arbitrary paths. Running the PraisonAI process under a low-privilege account with no read access to credential files, SSH keys or parent project directories limits what can be disclosed at the cost of the agent losing access to legitimate local resources it may need. Note that the vendor's context-security guidance to use relative paths and review ignore rules does not stop this attack, since the helpers accept absolute host paths directly.

Affected VersionsENISA

PraisonAI 3.8.1, < 4.6.59

Affected Packages

pypi praisonai fix: 4.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 root cause is a classic CWE-22 path traversal (also tracked as CWE-200 exposure) inside PraisonAI's context subsystem: src/praisonai/praisonai/context/queue.py builds artifact tools via create_artifact_tools(), which instantiates a FileSystemArtifactStore bound to a base_dir, but the read paths never consult that base_dir for containment. Each of artifact_head, artifact_tail, artifact_grep and artifact_chunk constructs ArtifactRef(path=artifact_path, ...) directly from the untrusted argument, and the corresponding store methods in artifact_store.py then do Path(ref.path).exists() and open() on that path with utf-8/replace decoding. There is no Path(path).resolve().relative_to(base_dir.resolve()) check, no artifact identifier or manifest lookup, and no requirement that the target file carry a valid .meta sidecar or appear in artifact_list(). The documented design intent is that middleware queues large tool outputs as artifacts and hands the agent compact opaque references it can explore with artifact_tail and artifact_grep; the implementation instead treats a raw filesystem path as the reference. The CPE cpe:2.3:a:mervinpraison:praisonai identifies the pip package, and the vendor validated the behaviour across 3.8.1, 4.0.0, 4.5.113, 4.6.33, 4.6.34, 4.6.40, 4.6.50 and 4.6.58, using a temporary artifact base directory, a legitimate stored artifact as a positive control, and a separate outside-secret.txt file that artifact_list() correctly did not enumerate yet artifact_head, artifact_grep and artifact_chunk happily returned. The trigger is not a race, heap condition or parsing bug; it is the absence of a containment check on a fully caller-controlled path. Exploitation is conditional on the application having enabled Dynamic Context Discovery and wired tools=ctx.get_tools() into an Agent, and reachability of that agent by an untrusted prompt, user or tool caller. Disclosure is bounded by the file permissions of the PraisonAI process UID and is read-only, so integrity and availability are unaffected.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 7.5 HIGH

Network-exposed agent accepting attacker-controlled tool arguments with no auth or race needed (AV:N/AC:L/PR:N/UI:N); read-only host-file disclosure gives C:H, I:N, A:N, scope unchanged.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/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
None
Availability
None

DescriptionCVE.org

PraisonAI is a multi-agent teams system. From version 3.8.1 to before version 4.6.59, PraisonAI's Dynamic Context Discovery feature exposes artifact helper tools through ctx.get_tools(). The implemented artifact tools do not enforce that the supplied artifact_path is an artifact created by the configured store or that it lives under the configured artifact base directory. Instead, artifact_head, artifact_tail, artifact_grep, and artifact_chunk wrap the caller-supplied path directly into an ArtifactRef and then read it from the host filesystem. As a result, any prompt/user/tool-caller that can influence those tool arguments can read files readable by the PraisonAI process, such as project .env files, cloud credentials, SSH keys, source files, or other local data. This issue has been patched in version 4.6.59.

Technical POC Analysis

CWE-22 (Improper Limitation of a Pathname to a Restricted Directory), with a CWE-200 information-exposure consequence.

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 versions 3.8.1 through 4.6.58 contain a high-severity vulnerability that allows an attacker to read arbitrary files from the host system when specific artifact helper tools are enabled and exposed over a network. This could expose sensitive data such as credentials, SSH keys, or source code to unauthorized parties. Leadership should prioritize patching because the flaw is remotely exploitable without authentication and directly threatens data confidentiality.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.5%
Top 58% exploitable
Prevalence
Low
niche open-source multi-agent AI framework, limited production footprint
Data Quality
3 sources
Confidence: Low

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 HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

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

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

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