CVE-2026-34955 PraisonAI: Sandbox Escape via shell=True and Bypassable Blocklist in SubprocessSandbox

High 8.8 Published Updated

Attackers can escape the SubprocessSandbox and execute arbitrary commands by bypassing the blocklist using shell=True in PraisonAI.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-34955?

CVE-2026-34955 is a high-severity command injection vulnerability in MervinPraison PraisonAI, published on 3 Apr 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

PraisonAI is a multi-agent teams system. Prior to version 4.5.97, SubprocessSandbox in all modes (BASIC, STRICT, NETWORK_ISOLATED) calls subprocess.run() with shell=True and relies solely on string-pattern matching to block dangerous commands. The blocklist does not include sh or bash as standalone executables, allowing trivial sandbox escape in STRICT mode via sh -c '<command>'. This issue has been patched in version 4.5.97.

Weakness: CWE-78

Which versions are affected by CVE-2026-34955?

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

PackageAffectedFixed in
praisonai PyPIAll versions4.5.97
praisonai PyPIAll versions4.5.97
praisonai PyPIAll versions4.5.97

Products include Praison Praisonai.

How do I fix CVE-2026-34955?

Upgrade praisonai to 4.5.97 or later.

Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.

Is CVE-2026-34955 being exploited?

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

Sources

Also known as GHSA-r4f2-3m54-pp7q, PYSEC-2026-2921.

Is CVE-2026-34955 in your software?

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

Check your SBOMs for free