Critical severity · published Apr 3, 2026
CVE-2026-34938
PraisonAI: Python Sandbox Escape via str Subclass startswith() Override in execute_code
10.0
CVSS
13.2%
EPSS
No
On KEV
Description
PraisonAI is a multi-agent teams system. Prior to version 1.5.90, execute_code() in praisonai-agents runs attacker-controlled Python inside a three-layer sandbox that can be fully bypassed by passing a str subclass with an overridden startswith() method to the _safe_getattr wrapper, achieving arbitrary OS command execution on the host. This issue has been patched in version 1.5.90.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Changed
Exploitation
Is it being used?
Exploit prediction (EPSS)13.2% · higher than 96% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
PR
PraisonAI · MervinPraison
< 1.5.90 · source: vendor
PR
Praisonaiagents · Praison
before 1.5.90 · source: NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-34938
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-34938
Exploit
https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-6vh2-h83c-9294
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
