Skip to main content

PraisonAI CVE-2026-57113

| EUVDEUVD-2026-108889 HIGH
Path Traversal (CWE-22)
2026-10-23 GitHub_M GHSA-f44v-7qgw-9gh9 PYSEC-2026-3509
8.1
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Share crafted github: template URI
  2. Exploit
    Victim loads attacker-supplied template
  3. Execution
    Unsanitized ref escapes cache root
  4. Impact
    shutil.rmtree deletes outside directory

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

Requires PraisonAI (>= 2.6.0, <= 4.6.57) configured to accept GitHub template sources - the advisory notes allow_any_github permits GitHub sources by default - and a user or automated service must be induced to load an attacker-supplied github: template URI whose ref contains traversal segments (e.g. @../../../../../../outside-target). The outside-cache .cache_meta.json write occurs on the first load; the more damaging shutil.rmtree directory deletion additionally requires that a normal cache entry for the same owner/repo/template prefix already exists. Impact is strictly bounded by the filesystem permissions of the PraisonAI process, and the CVSS UI:R reflects that nothing is triggered without the victim loading the malicious URI. Network access is not required for the write/delete primitive itself (the PoV disables networking entirely).

Impact

The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H, base 8.1 High) describes a network-reachable, low-complexity, unauthenticated flaw gated only by user interaction, with no confidentiality loss but high integrity and availability impact - consistent with the described outside-cache file write and attacker-chosen directory deletion. No EPSS score was supplied, so exploitation probability cannot be quantified from the input. There is no CISA KEV listing, so this is not confirmed as actively exploited; however the GHSA advisory publishes a working local-only PoV reproducer plus a release sweep confirming the bug across every tested tag (v2.6.0 through v4.6.57 and current head), so a public proof-of-concept clearly exists and the barrier to weaponization is low - but POC availability must not be conflated with active exploitation. No SSVC automatable/technical-impact decision fields were provided; the only prioritization signal is vuln.today's 'this_week' label, which maps to a real but non-emergency priority. Practical risk is moderated by two factors the raw score understates: exploitation requires the victim to load an attacker-supplied template URI (UI:R), and the destructive shutil.rmtree primitive additionally requires a pre-existing normal cache entry for the same owner/repo/template prefix - without it, impact is limited to a single .cache_meta.json write outside the cache. Net assessment: a genuine this-week-priority integrity/availability issue for PraisonAI users who load untrusted templates, not a drop-everything emergency, with no evidence of widespread or targeted exploitation in the provided data.

Exploit ScenarioDerived

An attacker publishes or shares a PraisonAI GitHub template URI whose ref contains a path-traversal sequence (e.g. github:attacker/repo/template@../../../../../../target) and induces a user or automated service to load it. On first load the resolver writes .cache_meta.json outside the cache root, and if a normal cache entry for the same owner/repo/template already exists, a subsequent load reaches shutil.rmtree and deletes the attacker-chosen directory. The GHSA advisory includes a working local-only PoV that demonstrates both the outside-cache write and the directory deletion without any network access.

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

Path traversal in PraisonAI 2.6.0 through 4.6.57 lets an attacker-supplied GitHub template URI write outside the template cache and, once a normal cache entry exists for the same owner/repo/template prefix, delete an attacker-chosen directory via shutil.rmtree. The resolver keeps the user-controlled template path and ref verbatim and the cache layer joins them into ~/.praison/cache/templates/github/<owner>/<repo>/<template>/<ref> without normalization or a boundary check, so a ref such as @../../../../../../outside-target escapes the cache root; nothing triggers unless a user or automated service is induced to load the crafted github: URI (CVSS 3.1 8.1 High, AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H), which is why PraisonAI rates the flaw this_week rather than an emergency. A public PoC reference exists in the GitHub advisory in the form of a local-only reproducer that disables networking; it is not verified as working exploit code, there is no CISA KEV listing, and no EPSS data was supplied. The project patched the issue in 4.6.59.

RemediationAI

Vendor-released patch: upgrade praisonai to 4.6.59, which fixes the issue; the advisory is at https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-f44v-7qgw-9gh9. If you cannot upgrade immediately, note that GitHub template sources are allowed by default through allow_any_github, so the practical compensating control is to disable that permissive setting and restrict template loading to a vetted allowlist of owner/repo/template combinations - the trade-off is that legitimate third-party templates must be enumerated manually. Second, refuse any github: template URI whose ref or path contains '..', path separators or absolute forms before it reaches TemplateLoader.load(); the trade-off is that unusual ref formats will be rejected, while ordinary pinned tags such as @v1.0.0 continue to work. Third, run the PraisonAI process with the least filesystem privilege needed and keep its cache root on a volume that does not hold user configuration, project state or application data, since the delete primitive can only reach what the process can reach and this limits blast radius without preventing the traversal itself. Operators should also be aware that the destructive rmtree path requires a prior normal cache entry for the same owner/repo/template prefix, so clearing or isolating existing template caches removes the deletion precondition but does not stop the outside-cache .cache_meta.json write - only the 4.6.59 upgrade does that.

Affected VersionsENISA

PraisonAI 2.6.0, < 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

PraisonAI is a Python multi-agent framework distributed on PyPI as praisonai, and the flaw lives entirely in its template subsystem rather than in any downloaded archive. praisonai/templates/resolver.py matches GitHub template URIs with GITHUB_PATTERN, whose broad regex groups capture the template path and ref and return them without segment validation; praisonai/templates/security.py is_source_allowed() accepts GitHub sources by default when allow_any_github is true; registry.get_template() resolves the URI, fetches the template, computes a checksum and calls cache.put(); cache._get_cache_path() then builds self.cache_dir / "github" / owner / repo / resolved.path / ref with no rejection of absolute segments or '.'/'..', no path resolution, and no os.path.commonpath check against the cache root; finally put() calls shutil.rmtree(cache_path) on an existing path, recreates it, copies content and writes .cache_meta.json. That yields CWE-22 path traversal (with the advisory also tagging CWE-73 external control of file name or path): the first load writes .cache_meta.json to an attacker-selected location outside the cache, and if a normal cache hierarchy for the same owner/repo/template already exists the same escaped path reaches shutil.rmtree and removes an attacker-selected outside directory before being replaced with cache metadata. The bug is distinct from the earlier template Zip Slip advisory - no malicious archive member is required, and the published reproducer disables network fetches entirely, so the primitive is purely cache-key construction; the advisory notes the same behavior also reproduces against a non-existent GitHub repository where the failed fetch still results in writes and deletes through the escaped path. Impact is bounded strictly by the filesystem permissions of the PraisonAI process, and the AV:N/PR:N/UI:R vector reflects a network-reachable, low-complexity, unauthenticated condition that only fires when the victim loads the crafted URI.

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

AV:N/UI:R because a victim must load an attacker-supplied github: template URI; PR:N as no target privileges are needed; C:N with I:H/A:H from outside-cache write and directory deletion.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/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
Required
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 14:02 EUVD
CVE Published
Oct 23, 2026 - 12:04 cve.org
HIGH 8.1

DescriptionCVE.org

PraisonAI is a multi-agent teams system. From version 2.6.0 to before version 4.6.59, PraisonAI's template loader accepts GitHub template URIs with refs, for example github:owner/repo/template@v1.0.0. The resolver stores the user-controlled template path and ref verbatim, and the cache layer later joins those values into ~/.praison/cache/templates/github/<owner>/<repo>/<template>/<ref> without normalizing each segment or checking that the final path remains inside the template cache root. A crafted ref such as ../../../../../../outside-delete-target therefore escapes the cache directory. The first load can write .cache_meta.json outside the cache. If the normal cache hierarchy for the same owner/repo/template has already been created, the same path reaches shutil.rmtree(cache_path) and removes an attacker-selected outside directory before replacing it with cache metadata. This issue has been patched in version 4.6.59.

Technical POC Analysis

CWE-22 (path traversal; advisory also tags CWE-73).

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

CVE-2026-57113 is a high-severity path traversal vulnerability in PraisonAI versions 2.6.0 through 4.6.57 that enables an attacker to delete arbitrary directories on systems where users load malicious GitHub template URIs. This impacts the integrity and availability of critical data and services, potentially causing significant operational disruption and data loss, which warrants management attention despite the need for user interaction.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include restricting user ability to load external GitHub template URIs, implementing application-level validation to block path traversal sequences in template refs, and enforcing least privilege on filesystem permissions to reduce deletion impact.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Low
niche open-source multi-agent AI framework, limited production deployment footprint
Data Quality
4 sources
Confidence: Medium

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.4%
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

40
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +40
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