Description
isolated-vm is a library for nodejs which gives you access to v8's Isolate interface. Versions of isolated-vm before v4.0.0 have API pitfalls which may make it easy for implementers to expose supposed secure isolates to the permissions of the main nodejs isolate. Reference objects allow access to the underlying reference's full prototype chain. In an environment where the implementer has exposed a Reference instance to an attacker they would be able to use it to acquire a Reference to the nodejs context's Function object. Similar application-specific attacks could be possible by modifying the local prototype of other API objects. Access to NativeModule objects could allow an attacker to load and run native code from anywhere on the filesystem. If combined with, for example, a file upload API this would allow for arbitrary code execution. This is addressed in v4.0.0 through a series of related changes.
Remediation
References
https://github.com/laverdet/isolated-vm/commit/2646e6c1558bac66285daeab54c7d490ed332b15
https://github.com/laverdet/isolated-vm/security/advisories/GHSA-mmhj-4w6j-76h7
https://github.com/laverdet/isolated-vm/blob/main/CHANGELOG.md#v400
https://github.com/laverdet/isolated-vm/commit/27151bfecc260e96714443613880e3b2e6596704
Related Vulnerabilities
CVE-2023-34468 Vulnerability in maven package org.apache.nifi:nifi-hikari-dbcp-service
CVE-2022-39250 Vulnerability in npm package matrix-js-sdk
CVE-2020-26938 Vulnerability in npm package oauth2-server
CVE-2021-29451 Vulnerability in maven package com.manydesigns:portofino-core
CVE-2020-13955 Vulnerability in maven package org.apache.calcite:calcite-core