vm2 is an open source vm/sandbox for Node.js. In vm2 prior to version 3.10.2, Promise.prototype.then Promise.prototype.catch callback sanitization can be bypassed. This allows attackers to escape the sandbox and run arbitrary code. In lib/setup-sandbox.js, the callback function of localPromise.prototype.then is sanitized, but globalPromise.prototype.then is not sanitized. The return value of async functions is globalPromise object. Version 3.10.2 fixes the issue.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-693",
"CWE-913",
"CWE-94"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/22xxx/CVE-2026-22709.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3.10.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "4b009c2d4b1131c01810c1205e641d614c322a29"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v3.10.2",
"range": [
{
"fixed": "4b009c2d4b1131c01810c1205e641d614c322a29"
}
],
"source": "REFERENCES_TAG"
},
{
"cpe": "cpe:2.3:a:vm2_project:vm2:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3.10.2"
}
],
"source": "CPE_RANGE"
}
]
}