CVE-2026-34937CWE-78

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

High · published April 3, 2026

CVSS v3.1
7.8
EPSS
1%
Percentile
49.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00634 · 49.7th percentile
Weakness
CWE-78 · Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')
Published
2026-04-03T22:50Z
EPSS history
Timeline
  • 03 APR 22:50Z
    PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution
    cvelistv5