PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| MervinPraison | PraisonAI | affected |
|
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Mervinpraison | Praisonai |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-w37c-qqfp-c67f | PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.567% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Praison
Praison praisonaiagents |
|
| CPEs | cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:* | |
| Vendors & Products |
Praison
Praison praisonaiagents |
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Mervinpraison
Mervinpraison praisonai |
|
| Vendors & Products |
Mervinpraison
Mervinpraison praisonai |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | PraisonAI: Shell Injection in run_python() via Unescaped $() Substitution | |
| Weaknesses | CWE-78 | |
| References |
| |
| Metrics |
cvssV3_1
|