Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Network-reachable API with low complexity but PR:H because controlling agents_file needs privileged access; scope change (S:C) since injected code runs in a spawned subprocess, with full C/I/A impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
PraisonAI versions before 4.6.78 contain a code injection vulnerability in deploy/api.py where the agents_file parameter is directly interpolated into an f-string without sanitization. Attackers can inject arbitrary Python code that executes when the generated server code runs via subprocess.Popen().
Articles & Coverage 2
AnalysisAI
Remote code execution in PraisonAI before 4.6.78 lets an attacker who can supply the agents_file parameter to deploy/api.py run arbitrary Python, because that value is interpolated directly into an f-string that is later executed as generated server code via subprocess.Popen(). The CVSS 4.0 base score is 9.4 and the vector requires high privileges (PR:H), meaning the attacker must already be able to reach and drive the deployment API. No public exploit has been identified at time of analysis and it is not on the CISA KEV list.
Technical ContextAI
PraisonAI is an open-source Python framework for building and orchestrating multi-agent LLM systems (mervinpraison/praisonai). Its deployment component (deploy/api.py) programmatically generates server code and launches it as a child process with subprocess.Popen(). The root cause is CWE-94 (Improper Control of Generation of Code, i.e. code injection): the user-controlled agents_file value is concatenated into a Python f-string template with no sanitization, escaping, or allow-listing, so any Python expression or statement embedded in that value becomes part of the emitted program and is executed when the generated script runs. This is a classic template/eval-style injection where the trust boundary between configuration input and executable code is not enforced.
RemediationAI
Vendor-released patch: 4.6.78 - upgrade PraisonAI to 4.6.78 or later, which is the primary and recommended fix (see GHSA-g6j7-pffp-8whg). If you cannot upgrade immediately, restrict who can reach and invoke the deploy/api.py deployment endpoint to trusted operators only and treat the agents_file parameter as untrusted input: validate it against a strict allow-list of known file paths and reject any value containing Python syntax, quotes, or newlines, accepting that this narrows legitimate flexibility in specifying agent definitions. As a further compensating control, run the generated server process under a low-privilege, sandboxed account so a successful injection cannot pivot to broader system compromise, at the cost of some deployment convenience. Refer to the vendor advisory (https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-g6j7-pffp-8whg) and the VulnCheck writeup (https://www.vulncheck.com/advisories/praisonai-before-code-injection-via-f-string) for confirmation of the fixed version.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-94 – Code Injection
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42902
GHSA-vwv5-32vr-3jcp