CRITICAL 9.8 PyPI
PraisonAI has critical RCE via `type: job` workflow YAML
GHSA-vc46-vw85-3wvm · CVE-2026-40288 · PYSEC-2026-477 · PYSEC-2026-488
Published · Modified
Description
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.yaml
Reproduction 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)
Ready to move
Start Securing
Free, no credit card | First findings in minutes