Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

PraisonAI SandboxExecutor network-isolated mode does not block non-proxy-aware network clients

CVSS 3.1 7.6 HIGHEUVD CVSS 3.1 7.6 CVSS 3.1 · [email protected] · Secondary 7.6 HIGHCVSS_V3 Publisher rating HIGHFixed by praisonai 1.7.2KEV status unknown

cve-program · CVE-2026-57135

Published

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Read the publisher's advisory

euvd · EUVD-2026-78418

Published

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Read the publisher's advisory

nvd · CVE-2026-57135

Published

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Read the publisher's advisory

osv · GHSA-gqmf-56h7-rrpf

Published

## Summary 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. ## Technical Details `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. ### Why This Is Not Intended Behavior 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. ## PoV 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. ## PoC The PoV section above contains the local reproduction command, input, and decisive output. ## Impact 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: - exfiltration from commands that can read local files, process output, or inherited environment variables; - access to localhost or internal network services reachable from the PraisonAI host; - requests to cloud metadata or service endpoints if the host network permits them; and - bypass of application policy that allows command execution only under a no-network assumption. This report does not claim that npm PraisonAI exposes this as an unauthenticated network service by default. It is a library-level isolation bypass in an exported TypeScript API and CLI mode. ### Severity Suggested severity: High. Rationale: - `AV`: common use is a network-facing application or agent service that accepts user or prompt-controlled work and executes it through the sandbox. - `AC`: a single command using a non-proxy-aware network client is sufficient. - `PR`: conservative scoring assumes the attacker can submit prompts or work items to the application using PraisonAI. - `UN`: no additional operator interaction is required once the command is executed. - `S`: impact is scored against the PraisonAI-hosting process and its network privileges. - `C`: network egress can allow data exfiltration from the sandboxed command context. - `I/A`: reachable internal services can receive attacker-controlled requests, with impact depending on deployment. If maintainers score only local CLI use, `AV:L` may be appropriate. If a deployment exposes this through unauthenticated agent endpoints, `PR:N` may be appropriate. ## Suggested Fix Do not represent proxy environment variables as network isolation. Recommended: 1. For a true `network-isolated` mode, run commands inside an execution boundary with OS-enforced network denial, such as a network namespace, firewall rule, sandbox profile, container, VM, or platform-specific socket filter. 2. Add regression tests that start a loopback server and verify that direct socket clients, Node `http.get`, Python sockets, `curl`, and other common clients cannot connect under `network-isolated`. 3. If only proxy hints are intended, rename the mode to something like `proxy-blocked`, document that it is not a security boundary, and keep "network-isolated" unavailable until OS-level enforcement exists. 4. Consider default-deny egress with explicit allowlists for destinations that must remain reachable from sandboxed commands. ## Affected Package/Versions - Repository: `MervinPraison/PraisonAI` - Ecosystem: `npm` - Package: `praisonai` - Component: TypeScript CLI feature `SandboxExecutor` - Latest npm package validated: `1.7.1` - Current `origin/main` validated: `1ad58ca02975ff1398efeda694ea2ab78f20cf3e` - `src/praisonai-ts/package.json` at `origin/main`: `praisonai` `1.7.1` Suggested affected range: ```text npm:praisonai >= 1.2.3, <= 1.7.1 ``` Selected version sweep: - `1.0.0`: package main cannot be required in the selected test environment. - `1.0.19`, `1.1.0`, `1.2.0`, `1.2.1`, `1.2.2`: `SandboxExecutor` is not exported. - `1.2.3`: vulnerable. - `1.2.4`: vulnerable. - `1.3.0`: vulnerable. - `1.3.6`: vulnerable. - `1.4.0`: vulnerable. - `1.5.0`: vulnerable. - `1.5.4`: vulnerable. - `1.6.0`: vulnerable. - `1.7.0`: vulnerable. - `1.7.1`: vulnerable. ## Advisory History Visible PraisonAI advisories and prior submissions were checked. The closest related findings are distinct: - `GHSA-r4f2-3m54-pp7q` covers PyPI `SubprocessSandbox` `shell=True` and blocklist bypass. - `GHSA-6jcq-6546-qrrw` covers Python Sandlock fallback to unrestricted subprocess execution when native Landlock is unavailable. - `GHSA-vmmj-pfw7-fjwp` covers npm `codeMode` host-process `new Function` sandbox escape. - `GHSA-vjv9-7m7j-h833` covers npm `SandboxExecutor` `allowedCommands` bypass through shell chaining. This report is narrower and distinct: npm TypeScript `SandboxExecutor` `network-isolated` mode advertises no network access but enforces only proxy environment variables, so non-proxy-aware clients keep network access without needing shell chaining or a disallowed executable.

Read the publisher's advisory

Affected versions, risk and source history

Exploitation and risk

Source status

CISA KEV lists vulnerabilities known to be exploited. FIRST EPSS estimates the likelihood of exploitation in the next 30 days. An unavailable score does not mean zero risk.

Which CVEs have scores here?

This view includes predictions for CVE identifiers explicitly listed in public NuGet advisories. Microsoft release pages have their own prediction coverage. Check source status for the scope and latest checks.

No exploitation or prediction data is available here for these CVEs. This does not mean they are safe or unlikely to be exploited.

cve-program · CVE-2026-57135

Published

PraisonAI SandboxExecutor network-isolated mode does not block non-proxy-aware network clients

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Source published
15 Sep 2026 10:23:54 UTC
Source modified
15 Sep 2026 12:43:30 UTC
Saved here
23 Oct 2026 15:48:27 UTC
Source terms
CVE Program Terms of Use

Original source record · Cite this exact observation · Complete original publisher JSON

Source: cve-program · CVE Program Terms of Use. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L

euvd · EUVD-2026-78418

Published

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment va…

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Additional publisher context

EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON.

Original publisher date fields

datePublished: Sep 15, 2026, 10:23:54 AM

dateUpdated: Sep 15, 2026, 12:43:30 PM

Source published
Sep 15, 2026, 10:23:54 AM (timezone not stated)
Source modified
Sep 15, 2026, 12:43:30 PM (timezone not stated)
Saved here
11 Nov 2026 14:08:05 UTC
Source terms
ENISA EUVD · source terms and attribution apply

Original source record · Cite this exact observation · Complete original publisher JSON

Source: euvd · ENISA EUVD · source terms and attribution apply. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

EUVD CVSS 3.1 · 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L

nvd · CVE-2026-57135

Published

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment va…

PraisonAI is a multi-agent teams system. From 1.2.3 until 1.7.2, SandboxExecutor network-isolated mode in src/praisonai-ts/src/cli/features/sandbox-executor.ts uses buildEnv() only to inject invalid http_proxy and https_proxy environment variables and does not establish an operating-system network boundary. Programs that ignore those proxy variables can open sockets directly, allowing supposedly isolated commands to reach localhost, internal services, cloud metadata, or external hosts and potentially exfiltrate data. An initial remediation was released in version 1.7.2.

Additional publisher context

NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON.

Source analysis status: Deferred

Weakness classifications: CWE-653 · CWE-693

Original publisher date fields

published: 2026-09-15T11:17:10.733

lastModified: 2026-09-15T14:45:28.563

Source published
15 Sep 2026 11:17:10 UTC
Source modified
15 Sep 2026 14:45:28 UTC
Saved here
25 Oct 2026 14:19:10 UTC
Source terms
NIST NVD usage terms; underlying source attribution retained

Original source record · Cite this exact observation · Complete original publisher JSON

Source: nvd · NIST NVD usage terms; underlying source attribution retained. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS 3.1 · [email protected] · Secondary · 7.6 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L

osv · GHSA-gqmf-56h7-rrpf

Published

npm PraisonAI SandboxExecutor network-isolated mode does not block non-proxy-aware network clients

## Summary 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. ## Technical Details `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. ### Why This Is Not Intended Behavior 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. ## PoV 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. ## PoC The PoV section above contains the local reproduction command, input, and decisive output. ## Impact 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: - exfiltration from commands that can read local files, process output, or inherited environment variables; - access to localhost or internal network services reachable from the PraisonAI host; - requests to cloud metadata or service endpoints if the host network permits them; and - bypass of application policy that allows command execution only under a no-network assumption. This report does not claim that npm PraisonAI exposes this as an unauthenticated network service by default. It is a library-level isolation bypass in an exported TypeScript API and CLI mode. ### Severity Suggested severity: High. Rationale: - `AV`: common use is a network-facing application or agent service that accepts user or prompt-controlled work and executes it through the sandbox. - `AC`: a single command using a non-proxy-aware network client is sufficient. - `PR`: conservative scoring assumes the attacker can submit prompts or work items to the application using PraisonAI. - `UN`: no additional operator interaction is required once the command is executed. - `S`: impact is scored against the PraisonAI-hosting process and its network privileges. - `C`: network egress can allow data exfiltration from the sandboxed command context. - `I/A`: reachable internal services can receive attacker-controlled requests, with impact depending on deployment. If maintainers score only local CLI use, `AV:L` may be appropriate. If a deployment exposes this through unauthenticated agent endpoints, `PR:N` may be appropriate. ## Suggested Fix Do not represent proxy environment variables as network isolation. Recommended: 1. For a true `network-isolated` mode, run commands inside an execution boundary with OS-enforced network denial, such as a network namespace, firewall rule, sandbox profile, container, VM, or platform-specific socket filter. 2. Add regression tests that start a loopback server and verify that direct socket clients, Node `http.get`, Python sockets, `curl`, and other common clients cannot connect under `network-isolated`. 3. If only proxy hints are intended, rename the mode to something like `proxy-blocked`, document that it is not a security boundary, and keep "network-isolated" unavailable until OS-level enforcement exists. 4. Consider default-deny egress with explicit allowlists for destinations that must remain reachable from sandboxed commands. ## Affected Package/Versions - Repository: `MervinPraison/PraisonAI` - Ecosystem: `npm` - Package: `praisonai` - Component: TypeScript CLI feature `SandboxExecutor` - Latest npm package validated: `1.7.1` - Current `origin/main` validated: `1ad58ca02975ff1398efeda694ea2ab78f20cf3e` - `src/praisonai-ts/package.json` at `origin/main`: `praisonai` `1.7.1` Suggested affected range: ```text npm:praisonai >= 1.2.3, <= 1.7.1 ``` Selected version sweep: - `1.0.0`: package main cannot be required in the selected test environment. - `1.0.19`, `1.1.0`, `1.2.0`, `1.2.1`, `1.2.2`: `SandboxExecutor` is not exported. - `1.2.3`: vulnerable. - `1.2.4`: vulnerable. - `1.3.0`: vulnerable. - `1.3.6`: vulnerable. - `1.4.0`: vulnerable. - `1.5.0`: vulnerable. - `1.5.4`: vulnerable. - `1.6.0`: vulnerable. - `1.7.0`: vulnerable. - `1.7.1`: vulnerable. ## Advisory History Visible PraisonAI advisories and prior submissions were checked. The closest related findings are distinct: - `GHSA-r4f2-3m54-pp7q` covers PyPI `SubprocessSandbox` `shell=True` and blocklist bypass. - `GHSA-6jcq-6546-qrrw` covers Python Sandlock fallback to unrestricted subprocess execution when native Landlock is unavailable. - `GHSA-vmmj-pfw7-fjwp` covers npm `codeMode` host-process `new Function` sandbox escape. - `GHSA-vjv9-7m7j-h833` covers npm `SandboxExecutor` `allowedCommands` bypass through shell chaining. This report is narrower and distinct: npm TypeScript `SandboxExecutor` `network-isolated` mode advertises no network access but enforces only proxy environment variables, so non-proxy-aware clients keep network access without needing shell chaining or a disallowed executable.

Source published
18 Jun 2026 14:26:28 UTC
Source modified
20 Jul 2026 21:56:44 UTC
Saved here
24 Oct 2026 13:17:17 UTC
Source terms
GitHub Advisory Database · CC-BY-4.0

Original source record · Cite this exact observation · Complete original publisher JSON

Source: osv · GitHub Advisory Database · CC-BY-4.0. The publisher's wording is preserved. ChangeIntel groups the information and labels changes. The JSON record includes additional source fields.

CVSS_V3 · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L

Publisher rating · HIGH

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 13 Nov 14:14 UTC · 274 of 275 readable · 273 fully read · documentation 469/469 current