High severity · published Apr 7, 2026
CVE-2026-39308
PraisonAI recipe registry publish path traversal allows out-of-root file write
7.1
CVSS
0.3%
EPSS
No
On KEV
Description
PraisonAI is a multi-agent teams system. Prior to 1.5.113, PraisonAI's recipe registry publish endpoint writes uploaded recipe bundles to a filesystem path derived from the bundle's internal manifest.json before it verifies that the manifest name and version match the HTTP route. A malicious publisher can place ../ traversal sequences in the bundle manifest and cause the registry server to create files outside the configured registry root even though the request is ultimately rejected with HTTP 400. This is an arbitrary file write / path traversal issue on the registry host. It affects deployments that expose the recipe registry publish flow. If the registry is intentionally run without a token, any network client that can reach the service can trigger it. If a token is configured, any user with publish access can still exploit it. This vulnerability is fixed in 1.5.113.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
None
Integrity
High
Availability
Low
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 27% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PR
PraisonAI · MervinPraison
< 4.5.113 · source: vendor, NVD
Affected product
PR
PraisonAI
MervinPraison
More from PraisonAI
10.0
CVE-2026-48168
PraisonAI: GitHub Actions Claude workflow command injection via unquoted PR branch name
10.0
CVE-2026-61447
PraisonAI before 1.6.78 Remote Code Execution via CodeAgent
10.0
CVE-2026-40114
PraisonAI has Server-Side Request Forgery via Unvalidated webhook_url in Jobs API
10.0
CVE-2026-39305
Arbitrary File Write / Path Traversal in Action Orchestrator
10.0
CVE-2026-34955
PraisonAI: Sandbox Escape via shell=True and Bypassable Blocklist in SubprocessSandbox