CVE-2026-40288
Full vulnerability record from the local CVENow database.
Description
PraisonAI is a multi-agent teams system. In versions below 4.5.139 of PraisonAI and 1.5.140 of praisonaiagents, the workflow engine is vulnerable to arbitrary command and code execution through untrusted YAML files. When praisonai workflow run <file.yaml> loads a YAML file with type: job, the JobWorkflowExecutor in job_workflow.py processes steps that support run: (shell commands via subprocess.run()), script: (inline Python via exec()), and python: (arbitrary Python script execution)—all without any validation, sandboxing, or user confirmation. The affected code paths include action_run() in workflow.py and _exec_shell(), _exec_inline_python(), and _exec_python_script() in job_workflow.py. An attacker who can supply or influence a workflow YAML file (particularly in CI pipelines, shared repositories, or multi-tenant deployment environments) can achieve full arbitrary command execution on the host system, compromising the machine and any accessible data or credentials. This issue has been fixed in versions 4.5.139 of PraisonAI and 1.5.140 of praisonaiagents.
View original CVE JSON
{
"id": "CVE-2026-40288",
"sourceIdentifier": "[email protected]",
"published": "2026-04-14T04:17:12.210",
"lastModified": "2026-10-26T22:10:00.163",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "PraisonAI is a multi-agent teams system. In versions below 4.5.139 of PraisonAI and 1.5.140 of praisonaiagents, the workflow engine is vulnerable to arbitrary command and code execution through untrusted YAML files. When praisonai workflow run <file.yaml> loads a YAML file with type: job, the JobWorkflowExecutor in job_workflow.py processes steps that support run: (shell commands via subprocess.run()), script: (inline Python via exec()), and python: (arbitrary Python script execution)—all without any validation, sandboxing, or user confirmation. The affected code paths include action_run() in workflow.py and _exec_shell(), _exec_inline_python(), and _exec_python_script() in job_workflow.py. An attacker who can supply or influence a workflow YAML file (particularly in CI pipelines, shared repositories, or multi-tenant deployment environments) can achieve full arbitrary command execution on the host system, compromising the machine and any accessible data or credentials. This issue has been fixed in versions 4.5.139 of PraisonAI and 1.5.140 of praisonaiagents."
},
{
"lang": "es",
"value": "PraisonAI es un sistema de equipos multiagente. En versiones anteriores a la 4.5.139 de PraisonAI y la 1.5.140 de praisonaiagents, el motor de flujo de trabajo es vulnerable a la ejecución arbitraria de comandos y código a través de archivos YAML no confiables. Cuando praisonai workflow run <file.yaml> carga un archivo YAML con type: job, el JobWorkflowExecutor en job_workflow.py procesa pasos que admiten run: (comandos de shell a través de subprocess.run()), script: (Python en línea a través de exec()), y python: (ejecución arbitraria de scripts de Python), todo sin ninguna validación, sandboxing o confirmación del usuario. Las rutas de código afectadas incluyen action_run() en workflow.py y _exec_shell(), _exec_inline_python(), y _exec_python_script() en job_workflow.py. Un atacante que puede proporcionar o influir en un archivo YAML de flujo de trabajo (particularmente en pipelines de CI, repositorios compartidos o entornos de despliegue multi-inquilino) puede lograr la ejecución completa y arbitraria de comandos en el sistema anfitrión, comprometiendo la máquina y cualquier dato o credencial accesible. Este problema ha sido solucionado en las versiones 4.5.139 de PraisonAI y 1.5.140 de praisonaiagents."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "MervinPraison",
"product": "PraisonAI",
"versions": [
{
"version": "< 4.5.139",
"status": "affected"
}
]
},
{
"vendor": "MervinPraison",
"product": "praisonaiagents",
"versions": [
{
"version": "< 1.5.140",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-14T15:56:49.344666Z",
"id": "CVE-2026-40288",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-78"
},
{
"lang": "en",
"value": "CWE-94"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:praison:praisonai:*:*:*:*:*:*:*:*",
"versionEndExcluding": "4.5.139",
"matchCriteriaId": "E5F6A0D4-AFE6-4DDA-A1C0-E74C7DD46E00"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:python:*:*",
"versionEndExcluding": "1.5.140",
"matchCriteriaId": "37CF4D9C-AD55-414A-9BF2-49A51F03A682"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-vc46-vw85-3wvm",
"source": "[email protected]",
"tags": [
"Exploit",
"Vendor Advisory"
]
}
]
}