Read the docs
TI-2026-27161 Aliases CVE-2026-34937GHSA-w37c-qqfp-c67f

PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution

Priority HIGH 76CWE-78Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Code execution
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-78.

Summary

PraisonAI is a multi-agent teams system. Prior to version 1.5.90, run_python() in praisonai constructs a shell command string by interpolating user-controlled code into python3 -c "<code>" and passing it to subprocess.run(..., shell=True). The escaping logic only handles \ and ", leaving $() and backtick substitutions unescaped, allowing arbitrary OS command execution before Python is invoked. This issue has been patched in version 1.5.90.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00567 47th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed PraisonAI (MervinPraison): 1.5.90praisonaiagents (PyPI): 1.5.90

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
MervinPraisonPraisonAIbefore 1.5.901.5.90Patch availableCNA
—praisonaiagents (PyPI)before 1.5.901.5.90Patch availableGHSA-w37c-qqfp-c67f
  • PraisonAI VendorMervinPraison Affected before 1.5.90 Fixed in 1.5.90 Patch available CNA
  • praisonaiagents (PyPI) Vendor— Affected before 1.5.90 Fixed in 1.5.90 Patch available GHSA-w37c-qqfp-c67f

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:*before 1.5.90VulnerableMervinPraison
  • cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:* Versions before 1.5.90 Vulnerable ·MervinPraison

Remediation

  • Fix · CNA PraisonAI (MervinPraison) Fixed in 1.5.90
  • Fix · GHSA-w37c-qqfp-c67f praisonaiagents (PyPI) Fixed in 1.5.90 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-34937
  2. 2026-10-03 Alias added: GHSA-w37c-qqfp-c67f

References

  • TI-2026-29070 PraisonAI: Critical RCE via `type: job` workflow YAML CVSS 3.1CRITICAL 9.8
  • TI-2026-27162 PraisonAI: Python Sandbox Escape via str Subclass startswith() Override in execute_code CVSS 3.1CRITICAL 10.0
  • TI-2026-29071 PraisonAI Browser Server allows unauthenticated WebSocket clients to hijack connected extension sessions CVSS 3.1CRITICAL 9.1
  • TI-2026-32306 PraisonAI has unsafe tool resolution in `ToolExecutionMixin.execute_tool`: undeclared `__main__` callables execute CVSS 3.1HIGH 8.6
  • TI-2026-27178 PraisonAI: SSRF in FileTools.download_file() via Unvalidated URL CVSS 3.1HIGH 8.6
  • TI-2026-28937 PraisonAIAgents has an OS Command Injection via shell=True in Memory Hooks Executor (memory/hooks.py) CVSS 4.0CRITICAL 9.3
See all 14 →

Sources