Releases: patriksimek/vm2
v3.10.5
What's Changed
- fix: allow Object.setPrototypeOf on sandbox-local objects
- fix: block Function constructor access via getOwnPropertyDescriptor
- fix: block Function constructor from crossing bridge regardless of access path
- fix: block all code-executing constructors from crossing bridge via property descriptors
- fix: block Function constructor extraction via nested property descriptors
- fix: prevent proxy unwrapping to block Function constructor extraction via Object.entries
- fix: prevent sandbox escape via doPreventExtensions exposure in util.inspect
- fix: prevent sandbox escape via getFactory exposure in util.inspect
- fix: sanitize SuppressedError sub-errors to prevent sandbox escape
- fix: block host Function constructor leak via direct handler.get() call
- fix: block WebAssembly.JSTag to prevent wasm-level exception catch sandbox escape in Node 25
Full Changelog: v3.10.4...v3.10.5
v3.10.4
What's Changed
- fix: prevent sandbox escape via Promise static method stealing
- fix: prevent sandbox escape via Reflect.construct Promise species bypass
- fix: prevent sandbox escape via proxy handler exposure in util.inspect
- fix: prevent sandbox escape via fromOtherWithContext exposure in util.inspect
Full Changelog: v3.10.3...v3.10.4
v3.10.3
What's Changed
- fix: prevent sandbox escape via Symbol.for cross-realm symbols
- fix: prevent Symbol.for bypass via hasOwnProperty override
- fix: prevent Symbol.for bypass via object key coercion
- fix: prevent cross-realm symbol extraction via Object.getOwnPropertySymbols
- fix: prevent cross-realm symbol extraction via spread operator on bridge proxies
- fix: prevent sandbox escape via Promise species manipulation
- fix: prevent Symbol.species getter TOCTOU bypass in Promise species reset
- fix: eliminate Promise species TOCTOU by unconditional constructor override
- fix: prevent sandbox escape via Promise.try static method stealing
Full Changelog: v3.10.2...v3.10.3
v3.10.2
What's Changed
- fix: use Reflect.apply instead of .call() in Promise handlers by @patriksimek in #549
Full Changelog: v3.10.1...v3.10.2
v3.10.1
What's Changed
- fix: Promise callback sanitization bypass vulnerability by @patriksimek in #547
Full Changelog: v3.10.0...v3.10.1
v3.10.0
What's Changed
- Upstream security fixes @netroy in #540
- Modernization, added support for TypeScript compiler @patriksimek in #542
New Contributors
Full Changelog: 3.9.19...v3.10.0
3.9.19
3.9.18
New Features
dd81ff6: Add resolver API to create a shared resolver for multiple NodeVM instances allowing to cache scripts and increase sandbox startup times.
4d662e3: Allow to pass a function to require.context which is called with the filename allowing to specify the context pre file. (Thanks to @blakebyrnes)
Fixes
d88105f: Fix issue leaking host array through Proxy. (Thanks to @arkark (Takeshi Kaneko) of GMO Cybersecurity by Ierae, Inc.)
5206ba2: Fix issue with inspect being writeable. (Thanks to @arkark (Takeshi Kaneko) of GMO Cybersecurity by Ierae, Inc.)