---
id: "CVE-2026-57144"
kind: "vulnerability"
aliases: ["CVE-2026-57144"]
title: "PraisonAI: sandbox fallback lets untrusted code read files and network"
severity: "high"
cvss: 8.8
epss: 0.00157
exploited: false
status: "open"
category: "ai-tooling"
products: []
ecosystems: []
tags: ["ai-tooling", "linux", "praisonai", "python", "self-hosted"]
not_affected_if: ["landlock-available", "sandbox-not-used", "sandlock-not-installed", "version-4.6.61-or-later"]
published_at: "2026-10-23T13:17:11+00:00"
first_seen_at: "2026-10-23T21:57:33+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-57144", "first_seen_at": "2026-10-23T21:57:33+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-57144", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# PraisonAI: sandbox fallback lets untrusted code read files and network

PraisonAI's SandlockSandbox silently falls back to a weaker subprocess sandbox when Landlock is unavailable, without failing closed. Code run in that sandbox can read files outside the configured allowed path and open network connections even when network=False is set.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

Check the installed praisonai version (for example with pip show praisonai); versions from 4.5.110 before 4.6.61 are affected. Check whether the optional sandlock module imports and reports Landlock as unavailable on the host.

## Fix

Upgrade praisonai to 4.6.61 or later.

## Timeline

- 2026-10-23T21:57:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-57144
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-57144

## From the sources

PraisonAI is a multi-agent teams system. From version 4.5.110 to before version 4.6.61, praisonai.sandbox.SandlockSandbox is documented and implemented as the kernel-enforced sandbox backend for untrusted code. Its SandboxConfig.native() path lets callers configure allowed filesystem paths and network=False. On systems where the optional sandlock module imports but reports that Landlock is unavailable, SandlockSandbox.execute() and run_command() do not fail closed. They silently fall back to SubprocessSandbox(self.config). That fallback keeps the same high-level native policy object but does not enforce the native filesystem or network boundary during code execution. A sandboxed payload can read files outside the configured allowed path and open network connections despite network=False. This issue has been patched in version 4.6.61.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
