highCVSS 8.8Vulnerability

GHSA-6jcq-6546-qrrw

## Summary `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`. ## Technical Details `SandboxConfig.native()` creates a restricted native policy and records caller-provided writable paths plus the requested network posture: ```python return cls( sandbox_type="native", working_dir=os.getcwd(), security_policy=SecurityPolicy( allow_network=network, allow_file_write=True, allow_subprocess=True, allowed_paths=resolved_paths, ), metadata={"writable_paths": resolved_paths, "network": network}, ) ``` `SandlockSandbox` builds the intended kernel policy with Landlock-backed filesystem allowlisting and network denial: ```python policy = Policy( fs_readable=allowed_read_paths, fs_writable=allowed_write_paths, net_allow_hosts=[] if not limits.network_enabled else None, max_memory=f"{limits.memory_mb}M", max_processes=limits.max_processes, max_open_files=limits.max_open_files, ) ``` However, both execution paths fail open when Sandlock is unavailable: ```python if not self.is_available: logger.warning("Sandlock not available, falling back to subprocess") from .subprocess import SubprocessSandbox fallback = SubprocessSandbox(self.config) return await fallback.execute(code, language, limits, env, working_dir) ``` `Subp

Properties

ghsa_id
GHSA-6jcq-6546-qrrw
summary
PraisonAI SandlockSandbox falls back to unrestricted subprocess execution when Landlock is unavailable
severity
high
cvss_score
8.8
cve_id
GHSA-6jcq-6546-qrrw
cvss_vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
is_ghsa_only
true
ghsa_published
2026-06-18T14:27:19Z
source_url
https://github.com/advisories/GHSA-6jcq-6546-qrrw
ghsa_updated
2026-06-18T14:27:20Z

Related Entities (6)

HAS_WEAKNESS (3)

[Weakness]Exposure of Resource to Wrong Sphere
[Weakness]Protection Mechanism Failure
[Weakness]Incorrect Privilege Assignment

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/praisonai

AFFECTS (1)

[Software]pip/praisonai

Explore deeper with Ninja Signal's threat intelligence graph