npm PraisonAI SandboxExecutor network-isolated mode does not block non-proxy-aware network clients
The published npm package praisonai exports a TypeScript SandboxExecutor with a network-isolated mode. The CLI lists that mode as:
```text
network-isolated No network access (proxy blocked)
```
The implementation does not create a network namespace, firewall rule, socket filter, or proxy-enforced execution boundary. It only injects proxy environment variables into the child process:
```ts
http_proxy: 'http://localhost:0',
https_proxy: 'http://localhost:0',
HTTP_PROXY: 'http://localhost:0',
HTTPS_PROXY: 'http://localhost:0',
no_proxy: '',
NO_PROXY: ''
```
Clients that do not explicitly honor those proxy variables continue to use the host network stack. A local-only PoV shows that, inside mode: "network-isolated", a proxy-aware Node invocation is stopped, while a plain Node HTTP client reaches a loopback HTTP server from the same sandboxed command environment.
This is a network-isolation protection failure in an exported npm API and CLI mode. It is not a generic claim that every PraisonAI sandbox backend is affected.
src/praisonai-ts/src/cli/features/sandbox-executor.ts declares the mode:
```ts
export type SandboxMode = 'disabled' | 'basic' | 'strict' | 'network-isolated';
```
SandboxExecutor.spawn() starts the command through the host shell and passes only the environment returned by buildEnv():
```ts
const proc = spawn('sh', ['-c', command], {
cwd: this.config.cwd,
env,
timeout: this.config.timeout,
stdio: ['pipe', 'pipe', 'pipe']
});
```
For network-isolated, buildEnv() does not apply an OS-level network restriction. It only sets proxy variables:
```ts
case 'network-isolated':
// No network access (requires additional OS-level setup)
return {
...baseEnv,
http_proxy: 'http://localhost:0',
https_proxy: 'http://localhost:0',
HTTP_PROXY: 'http://localhost:0',
HTTPS_PROXY: 'http://localhost:0',
no_proxy: '',
NO_PROXY: ''
};
```
The CLI mode listing presents this as no network access:
```ts
'network-isolated': 'No network access (proxy blocked)'
```
That creates a false boundary. Proxy variables affect only clients that choose to read and honor them. Other clients can still open sockets directly from the child process.
The vulnerable behavior is not "commands can run." The issue is that a mode named network-isolated and displayed to users as "No network access" still allows direct socket access.
The source comment says network-isolated requires additional OS-level setup, which is consistent with the finding: proxy variables alone are not a network isolation mechanism. The exported npm API and CLI mode do not provide such setup or warn callers that this mode is only a best-effort proxy hint.
If the intended behavior is merely "set proxy variables for cooperative clients," the mode name and CLI description should be changed so users do not rely on it as a security boundary.
Run from a local reproduction checkout:
```bash
node poc/pov_poc.js 1.7.1
```
The PoV:
1. Installs npm:[email protected] into a temporary project.
2. Starts a harmless HTTP server bound to 127.0.0.1 on a random local port.
3. Creates new SandboxExecutor({ mode: "network-isolated" }).
4. Confirms the child environment contains the proxy variables.
5. Runs node --use-env-proxy client.js as a proxy-aware control. It fails and does not reach the server.
6. Runs node client.js without proxy opt-in. It reaches the server and prints the marker.
Observed output summary from evidence/pov-npm-1.7.1.json:
```json
{
"version": "1.7.1",
"mode": "network-isolated",
"control": {
"localServerBoundToLoopback": true,
"proxyVariablesSet": true,
"proxyAwareClientStopped": true,
"requestReachedLoopbackServer": true
},
"observed": {
"proxyAwareRun": {
"success": false,
"stdout": "",
"exitCode": 2
},
"netRun": {
"success": true,
"stdout": "BODY=poc\n",
"exitCode": 0
},
"loopbackHitCount": 1
},
"vulnerable": true
}
```
The PoV is local-only. It does not contact any external host after npm package installation, and it does not use cloud metadata or destructive commands.
The PoV section above contains the local reproduction command, input, and decisive output.
Applications often use sandbox network controls to prevent prompt-injected, user-supplied, or model-generated commands from exfiltrating secrets or reaching internal services. A caller who relies on network-isolated mode for that boundary can still get network egress by using any client that ignores proxy environment variables or by using direct socket APIs.
Depending on the hosting environment, this can allow:
This issue can be reached over the network, attack complexity is low, an attacker needs low-level privileges on the target. No user interaction is required. The scope is unchanged, so the impact stays within the vulnerable component. Rated impact: confidentiality high, integrity low, availability low.
The score comes from this vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
CVE-2026-57135 is classified as CWE-653: Improper Isolation or Compartmentalization. The product does not properly compartmentalize or isolate functionality, processes, or resources that require different privilege levels, rights, or permissions.
CVE-2026-57135 is recorded against 1 package.
Published on 18 June 2026 and last revised on 20 July 2026. No public exploit is currently recorded for this entry. Record sourced from OSV.
github.com (Web)
github.com (Package)
praisonai has other advisories on record. If you are patching this one, these are worth checking on the same host:
These advisories are the same class of weakness (CWE-653: Improper Isolation or Compartmentalization) in other software:
Details
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L
Affected Packages
| Software | From version | Fixed in |
|---|---|---|
| praisonai | — | — |
References
Similar Threats
Site Security Check
CVE-2026-57135 is rated CVSS 8.0 High. BotEraser scans your installation against known CVE records and tells you whether this vulnerability applies to the versions you actually run.
Scan My Site Free →No credit card required · Results in minutes
ⓘ Data Notice: The information presented above has been compiled from publicly available internet sources. Boteraser aggregates this data solely for informational purposes and does not independently classify, evaluate, or endorse any findings about the vulnerabilities listed. The accuracy and completeness of this information is the sole responsibility of the original publishers. Boteraser and its operators accept no liability for any decisions made based on this data.
Stay up to date with the latest from Boteraser.
We use cookies to improve your experience on our site. By using our site, you consent to cookies.
Manage your cookie preferences below:
Essential cookies enable basic functions and are necessary for the proper function of the website.
CloudFlare provides web performance and security solutions, enhancing site speed and protecting against threats.
Service URL: developers.cloudflare.com (opens in a new window)
These cookies are needed for adding comments on this website.
These cookies are used for managing login functionality on this website.
Statistics cookies collect information anonymously. This information helps us understand how visitors use our website.
Google Analytics is a powerful tool that tracks and analyzes website traffic for informed marketing decisions.
Service URL: policies.google.com (opens in a new window)
You can find more information in our Cookie Policy and Privacy Policy.