CVE-2026-40158 PraisonAI has Improper Control of Generation of Code ('Code Injection') and Protection Mechanism Failure in praisonai

High 8.6 Published Updated

Attackers can bypass the Python sandbox to execute arbitrary code when running untrusted agent code in PraisonAI.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-40158?

CVE-2026-40158 is a high-severity code injection vulnerability in MervinPraison PraisonAI, published on 10 Apr 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

Official description

PraisonAI is a multi-agent teams system. Prior to 4.5.128, PraisonAI's AST-based Python sandbox can be bypassed using type.__getattribute__ trampoline, allowing arbitrary code execution when running untrusted agent code. The _execute_code_direct function in praisonaiagents/tools/python_tools.py uses AST filtering to block dangerous Python attributes like __subclasses__, __globals__, and __bases__. However, the filter only checks ast.Attribute nodes, allowing a bypass. The sandbox relies on AST-based filtering of attribute access but fails to account for dynamic attribute resolution via built-in methods such as type.getattribute, resulting in incomplete enforcement of security restrictions. The string '__subclasses__' is an ast.Constant, not an ast.Attribute, so it is never checked against the blocked list. This vulnerability is fixed in 4.5.128.

Weakness: CWE-94, CWE-693

Which versions are affected by CVE-2026-40158?

3 open source packages ship an affected version, including praisonai and PraisonAI. It affects 1 product.

PackageAffectedFixed in
praisonai PyPIAll versions4.5.128
praisonai PyPIAll versions4.5.128
PraisonAI PyPIAll versions4.5.128

Products include Praison Praisonai.

How do I fix CVE-2026-40158?

Upgrade praisonai to 4.5.128 or later.

Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.

Is CVE-2026-40158 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-40158 exists.

Sources

Also known as GHSA-3c4r-6p77-xwr7, PYSEC-2026-2898.

Is CVE-2026-40158 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free