CVE-2026-34937
Command Injection in PraisonAI run_python() via Improper Shell Escaping
Publication date: 2026-04-03
Last updated on: 2026-04-14
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| praison | praisonaiagents | to 1.5.90 (exc) |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-78 | The product constructs all or part of an OS command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended OS command when it is sent to a downstream component. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
The vulnerability exists in PraisonAI versions prior to 1.5.90 in the run_python() function. This function constructs a shell command string by inserting user-controlled code into a python3 -c "<code>" command and then executes it using subprocess.run with shell=True. The escaping logic only protects backslashes and double quotes, but fails to escape $() and backtick substitutions. This flaw allows an attacker to execute arbitrary operating system commands before the Python code runs.
How can this vulnerability impact me? :
This vulnerability can lead to arbitrary OS command execution with the privileges of the process running PraisonAI. An attacker could exploit this to execute malicious commands, potentially leading to full system compromise, data theft, data modification, or denial of service.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability has been patched in PraisonAI version 1.5.90. The immediate step to mitigate this vulnerability is to upgrade PraisonAI to version 1.5.90 or later.