CVE-2026-40288: PraisonAI has critical RCE via `type: job` workflow YAML
praisonai workflow run loads untrusted YAML and if type: job executes steps through JobWorkflowExecutor in jobworkflow.py. This supports: - run: → shell command execution via subprocess.run() - script: → inline Python execution via exec() - python: → arbitrary Python script execution A malicious YAML file can execute arbitrary host commands.
Published Apr 10, 2026 · Updated Apr 14, 2026
Affected packages
praisonaiagents
- Ecosystem
- PyPI
- Affected
- <= 1.5.139
- Fixed in
- 1.5.140
- Check
pip show praisonaiagents
PraisonAI
- Ecosystem
- PyPI
- Affected
- <= 4.5.138
- Fixed in
- 4.5.139
- Check
pip show PraisonAI
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
praisonai workflow run <file.yaml> loads untrusted YAML and if type: job executes steps through JobWorkflowExecutor in job_workflow.py.
This supports:
run:→ shell command execution viasubprocess.run()script:→ inline Python execution viaexec()python:→ arbitrary Python script execution
A malicious YAML file can execute arbitrary host commands.
Affected Code
- workflow.py →
action_run() - job_workflow.py →
_exec_shell(),_exec_inline_python(),_exec_python_script()
PoC
Create exploit.yaml:
type: job
name: exploit
steps:
- name: write-file
run: python -c "open('pwned.txt','w').write('owned')"Run:
praisonai workflow run exploit.yamlReproduction Steps
- Save the YAML above as
exploit.yaml. - Execute
praisonai workflow run exploit.yaml. - Confirm
pwned.txtappears in the working directory.
Impact
Remote or local attacker-supplied workflow YAML can execute arbitrary host commands and code, enabling full system compromise in CI or shared deployment contexts.
Reporter: Lakshmikanthan K (letchupkt)
Credited to l3tchupkt.
References
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
More PyPI vulnerabilities
All PyPI entriesCVE-2026-61447
PraisonAI: CodeAgent Executes LLM-Generated Code Without Sandboxing and Leaks All Environment Secrets
critical10.0Oct 8, 2026CVE-2026-62176
PraisonAI: Code Injection via f-string Interpolation in Deploy API Server Generation
critical9.1Oct 7, 2026CVE-2026-55529
PraisonAI has an origin validation bypass in MCP HTTP Stream transport that allows browser-mediated unauthenticated tool execution on local MCP server
medium6.9Aug 25, 2026CVE-2026-55531
PraisonAI MCP HTTP server has unauthenticated unbounded session accumulation (memory exhaustion; session TTL never enforced)
medium6.5Aug 25, 2026CVE-2026-55532
PraisonAI: Origin-validation bypass (startswith prefix match) enables unauthenticated cross-site request forgery against the PraisonAI MCP HTTP server
high7.6Aug 25, 2026CVE-2026-55536
PraisonAI has a Browser Server WebSocket origin validation bypass via unanchored regex (patch bypass of CVE-2026-40289 / GHSA-8x8f-54wf-vv92)
critical9.1Aug 25, 2026
