Sceawere

Vulnerability Detail

CVE-2026-47686UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

vm2 Error Cause Sandbox Escape

Vulnerability Metadata

Severity
Critical
Score / CVSS
9.9
Creation Date
3h ago
Vendor
patriksimek
Product
vm2
Attack Type
CWE-693: Protection Mechanism Failure
Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Attack Complexity
LOW

Narrative and Response

Description

vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.6, handleException() in lib/setup-sandbox.js sanitizes SuppressedError.error, SuppressedError.suppressed, and AggregateError.errors but does not sanitize Error.cause, allowing sandbox code to obtain a powerful host object such as process from an embedder-exposed host function that throws an error with that object as its cause and then execute arbitrary host commands. This issue is fixed in version 3.11.6.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "9.9",
  "pubDate": "2026-08-17T21:16:45.507Z",
  "pubdate": "2026-08-17T21:16:45.507Z",
  "executiveSummary": "A sandbox escape vulnerability exists in vm2 prior to version 3.11.6, specifically within the exception handling mechanisms of the sandbox setup.\nThe vulnerability arises due to incomplete sanitization of thrown error properties within the handleException() function located in lib/setup-sandbox.js.\nWhile the implementation correctly sanitizes SuppressedError.error, SuppressedError.suppressed, and AggregateError.errors, it fails to sanitize Error.cause.\nAn unprivileged attacker executing code inside the sandbox can leverage this oversight to extract powerful host objects, such as the process object, when an embedder-exposed host function throws an error containing that object as its cause.\nSuccessful exploitation allows sandbox escape, enabling the execution of arbitrary host commands with the privileges of the hosting Node.js application.\nThe risk implication is severe, as it completely compromises the isolation boundaries provided by the vm2 sandbox.\nExploitation requires the presence of an embedder-exposed host function that throws an error containing a host object in the cause property.",
  "technicalDetails": "The vulnerability resides in the handleException() function within the lib/setup-sandbox.js file of the vm2 package, affecting versions prior to 3.11.6.\nThe root cause is insufficient input sanitization and object leakage prevention during error propagation from the sandbox to the host or vice versa.\nIn JavaScript, the Error.cause property allows developers to chain errors by specifying the underlying reason an error occurred.\nThe vm2 sandbox maintains a boundary by sanitizing known error wrapping mechanisms such as SuppressedError.error, SuppressedError.suppressed, and AggregateError.errors to prevent host object leakage.\nHowever, the implementation overlooks the standard Error.cause property.\nThe attack flow proceeds as follows: First, sandbox code invokes an embedder-exposed host function designed or manipulated to throw an error.\nThe thrown error is constructed by the host or captures a powerful host object—such as the Node.js process object—assigned to the Error.cause property.\nWhen the exception propagates back through the sandbox boundary, the vulnerable handleException() function fails to inspect, sanitize, or strip the Error.cause property.\nConsequently, the untrusted sandbox code catches or intercepts the error object and extracts the leaked host object from the cause property.\nWith access to the host process object, the attacker obtains the ability to interact with the underlying operating system, load native modules, and execute arbitrary host commands.\nNo authentication or specific privilege level is required within the sandbox to trigger this behavior, provided the sandbox code can interact with a vulnerable host-exposed function that throws errors with a populated cause property."
}
CVE-2026-47686: vm2 Error Cause Sandbox Escape (CRITICAL Severity, CVSS: 9.9) - Sceawere