https://github.com/patriksimek/vm2
javascript node-js sandbox security vm
Score: 32.777101548492105
Last synced: 1 day ago
JSON representation
Repository metadata:
Advanced vm/sandbox for Node.js
- Host: GitHub
- URL: https://github.com/patriksimek/vm2
- Owner: patriksimek
- License: mit
- Created: 2014-01-14T11:31:39.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2026-10-18T10:53:34.000Z (20 days ago)
- Last Synced: 2026-10-29T12:15:15.666Z (9 days ago)
- Topics: javascript, node-js, sandbox, security, vm
- Language: JavaScript
- Homepage:
- Size: 2.35 MB
- Stars: 4,113
- Watchers: 41
- Forks: 332
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
- Security: SECURITY.md
- Claude: CLAUDE.md
Owner metadata:
- Name: Patrik Simek
- Login: patriksimek
- Email:
- Kind: user
- Description: Co-founder & CTO at Make (formerly @integromat)
- Website: https://patriksimek.cz
- Location: Prague, Czechia
- Twitter: patriksimek
- Company: Make (formerly @integromat)
- Icon url: https://avatars.githubusercontent.com/u/1000058?u=2d29bb0e062ee7253c28d2b94586fe1320936c80&v=4
- Repositories: 44
- Last Synced at: 2024-04-15T11:03:36.883Z
- Profile URL: https://github.com/patriksimek
GitHub Events
Total
- Create event: 4
- Delete event: 3
- Fork event: 15
- Issue comment event: 26
- Issues event: 17
- Pull request event: 11
- Pull request review comment event: 3
- Pull request review event: 1
- Push event: 30
- Release event: 5
- Watch event: 131
- Total: 246
Last Year
- Create event: 3
- Delete event: 1
- Fork event: 4
- Issue comment event: 11
- Issues event: 6
- Pull request event: 5
- Pull request review comment event: 3
- Pull request review event: 1
- Push event: 20
- Release event: 5
- Watch event: 35
- Total: 94
Committers metadata
Last synced: 2 days ago
Total Commits: 528
Total Committers: 42
Avg Commits per committer: 12.571
Development Distribution Score (DDS): 0.46
Commits in past year: 166
Committers in past year: 5
Avg Commits per committer in past year: 33.2
Development Distribution Score (DDS) in past year: 0.343
| Name | Commits | |
|---|---|---|
| Patrik Simek | p****k@p****z | 285 |
| XmiliaH | x****t@g****m | 119 |
| Patrik Simek (bot) | b****t@p****z | 52 |
| Orta Therox | o****x@g****m | 7 |
| dependabot[bot] | 4****] | 6 |
| Blake Byrnes | b****s@g****m | 6 |
| Idan Attias | i****a@w****m | 6 |
| klaviyo-nick | n****s@k****m | 5 |
| Alizain Feerasta | a****a@g****m | 4 |
| Harel Moshe | h****o@w****m | 2 |
| Randal Pinto | r****l@r****o | 2 |
| Shigma | 3****a | 2 |
| Timo | 3****1 | 2 |
| Vladimir Adamic | v****c@g****m | 2 |
| Pascal Vomhoff | P****f@y****e | 1 |
| OlegTsyba | o****a@g****m | 1 |
| Denis Yaremov | d****s@r****o | 1 |
| Arran Ubels | a****s@b****m | 1 |
| Alexander Müller | d****p@g****m | 1 |
| Arjan van Wijk | t****e@g****m | 1 |
| Barend | b****n | 1 |
| 白日梦主义 | m****e@c****c | 1 |
| कारतोफ्फेलस्क्रिप्ट™ | n****y | 1 |
| karanssj4 | k****a@g****m | 1 |
| eddie | e****e@g****m | 1 |
| dysc | d****c | 1 |
| contra | y****o@c****o | 1 |
| azu | a****o@g****m | 1 |
| Youngrok Kim | r****0@g****m | 1 |
| Sean Pan | o****n@g****m | 1 |
| and 12 more... | ||
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 100
Total pull requests: 50
Average time to close issues: 2 months
Average time to close pull requests: about 2 months
Total issue authors: 80
Total pull request authors: 19
Average comments per issue: 4.41
Average comments per pull request: 1.56
Merged pull request: 29
Bot issues: 0
Bot pull requests: 11
Past year issues: 14
Past year pull requests: 19
Past year average time to close issues: 21 days
Past year average time to close pull requests: 9 days
Past year issue authors: 8
Past year pull request authors: 8
Past year average comments per issue: 0.64
Past year average comments per pull request: 0.74
Past year merged pull request: 6
Past year bot issues: 0
Past year bot pull requests: 7
Top Issue Authors
- R31K4G3 (7)
- zxti (4)
- XmiliaH (3)
- vewz (3)
- ppedziwiatr (3)
- benjamincburns (2)
- StNekroman (2)
- ZeroSkill830 (2)
- garymathews (2)
- helloanoop (2)
- fuzing (1)
- madhuni (1)
- jamespantalones (1)
- akcyp (1)
- lijingmu (1)
Top Pull Request Authors
- XmiliaH (15)
- dependabot[bot] (11)
- patriksimek (5)
- netroy (3)
- patriksimek-bot (2)
- JasonnnW3000 (1)
- vewz (1)
- sasha-the-architect (1)
- eddieran (1)
- subhashdasyam (1)
- karanssj4 (1)
- bespokebob (1)
- Cherrling (1)
- nick-klaviyo (1)
- mausamrijall (1)
Top Issue Labels
- confirmed (16)
- question (15)
- wontfix (13)
- bug (12)
- enhancement (2)
- unconfirmed (2)
- feature request (2)
- help wanted (2)
- duplicate (1)
- stale (1)
Top Pull Request Labels
- dependencies (11)
- javascript (7)
Package metadata
- Total packages: 11
-
Total downloads:
- npm: 4,217,620 last-month
- Total docker downloads: 986,148,180
- Total dependent packages: 978 (may contain duplicates)
- Total dependent repositories: 52,174 (may contain duplicates)
- Total versions: 123
- Total maintainers: 10
- Total advisories: 100
npmjs.org: vm2
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules.
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.12.2 (published about 2 months ago)
- Last Synced: 2026-11-04T20:36:44.764Z (2 days ago)
- Versions: 83
- Dependent Packages: 973
- Dependent Repositories: 52,172
- Downloads: 4,141,059 Last month
- Docker Downloads: 986,148,180
-
Rankings:
- Docker downloads count: 0.056%
- Downloads: 0.068%
- Dependent packages count: 0.069%
- Dependent repos count: 0.132%
- Average: 0.643%
- Stargazers count: 1.493%
- Forks count: 2.038%
- Maintainers (1)
-
Advisories:
- vm2 contains a sandbox escape vulnerability
- vm2: NodeVM custom resolution bypasses external path boundaries
- vm2: Host Promise rejection from an exposed constructor can terminate the vm2 host process
- vm2: NodeVM zlib Buffers expose pooled host memory across the VM boundary
- vm2: `allowAsync: false` can be bypassed through Promise thenable assimilation in VM and NodeVM
- vm2: Sandbox Escape (NodeVM)
- vm2: Host-returned Promise rejection can bypass vm2's unhandled-rejection hardening and terminate the host process
- vm2: Default VM can mutate host TypedArray and ArrayBuffer intrinsics after the host-prototype pollution fix
- vm2 sandbox escape to host RCE via revisited host-wrapped AggregateError bypassing Error sanitization cycle short-circuit
- vm2: util.getCallSites() bypasses GHSA-v27g-jcqj-v8rw host-frame redaction, leaks host call stack
- vm2 leaks absolute host filesystem paths to sandbox code via error stack formatting
- vm2: timeout Option Bypass via FinalizationRegistry Cleanup Callback (Unbounded Host Event-Loop Block)
- vm2: NodeVM `require.external` without an explicit `require.root` grants unrestricted host filesystem access and full RCE
- vm2: Sandboxed code can read and write host-realm memory via Node's shared Buffer pool
- vm2 sandbox escape via WebAssembly.compileStreaming Promise species bypass
- vm2: Incomplete nodejs.* symbol filtering lets sandbox override host WebStream state checks
- vm2: NodeVM builtin allowlist bypass via node:test.run() execArgv allows sandbox escape
- vm2 CLI provides no sandbox isolation - host-realm require() is reachable from sandboxed scripts
- vm2 exposes host HTTPS credentials and TLS traffic through globalAgent
- vm2 Custom Module Resolver Can Bypass the External Package Allowlist by Loading a Colliding Host Package
- vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes
- vm2: NodeVM node:-prefixed negative builtin deny bypass exposes child_process
- vm2: vm.freeze()/vm.readonly() bypass via accessor descriptor
- vm2: NodeVM nesting guard accepts array-shaped require and permits host RCE
- vm2: GHSA-m283-3h24-438v fix bypass leads to host RCE via call/apply indirection
- vm2 allows a sandboxed plugin to execute native code through `node:sqlite`
- vm2 crypto builtin loads attacker native code through setEngine
- vm2 sandbox escape on Node.js 26 through a stale PromiseThenLookupChain protector
- vm2 NodeVM can replace the host process TLS trust store
- vm2: External module allowlist uses a raw prefix test, so a prefix-sharing sibling package is treated as allowlisted
- Duplicate Advisory: vm2: Host Promise rejection from an exposed constructor can terminate the vm2 host process
- Duplicate Advisory: vm2: NodeVM zlib Buffers expose pooled host memory across the VM boundary
- Duplicate Advisory: vm2: NodeVM custom resolution bypasses external path boundaries
- Duplicate Advisory: vm2 contains a sandbox escape vulnerability
- Duplicate Advisory: vm2: vm.freeze()/vm.readonly() bypass via accessor descriptor
- Duplicate Advisory: vm2: NodeVM builtin denylist bypass via fs/promises despite -fs, allowing host filesystem writes
- Duplicate Advisory: vm2 Custom Module Resolver Can Bypass the External Package Allowlist by Loading a Colliding Host Package
- Duplicate Advisory: vm2: Host-returned Promise rejection can bypass vm2's unhandled-rejection hardening and terminate the host process
- Duplicate Advisory: Sandbox Escape (NodeVM)
- Duplicate Advisory: `allowAsync: false` can be bypassed through Promise thenable assimilation in VM and NodeVM
- Duplicate Advisory: vm2 sandbox escape via WebAssembly.compileStreaming Promise species bypass
- Duplicate Advisory: Incomplete nodejs.* symbol filtering lets sandbox override host WebStream state checks
- Duplicate Advisory: vm2: NodeVM node:-prefixed negative builtin deny bypass exposes child_process
- Duplicate Advisory: vm2 CLI provides no sandbox isolation - host-realm require() is reachable from sandboxed scripts
- Duplicate Advisory: Default VM can mutate host TypedArray and ArrayBuffer intrinsics after the host-prototype pollution fix
- Duplicate Advisory: External module allowlist uses a raw prefix test, so a prefix-sharing sibling package is treated as allowlisted
- Duplicate Advisory: vm2 NodeVM can replace the host process TLS trust store
- Duplicate Advisory: NodeVM builtin allowlist bypass via node:test.run() execArgv allows sandbox escape
- Duplicate Advisory: Sandboxed code can read and write host-realm memory via Node's shared Buffer pool
- Duplicate Advisory: NodeVM `require.external` without an explicit `require.root` grants unrestricted host filesystem access and full RCE
- Duplicate Advisory: vm2 sandbox escape on Node.js 26 through a stale PromiseThenLookupChain protector
- Duplicate Advisory: vm2: GHSA-m283-3h24-438v fix bypass leads to host RCE via call/apply indirection
- Duplicate Advisory: vm2: util.getCallSites() bypasses GHSA-v27g host-frame redaction, leaks host call stack
- Duplicate Advisory: vm2 sandbox escape to host RCE via revisited host-wrapped AggregateError bypassing Error sanitization cycle short-circuit
- Duplicate Advisory: vm2: timeout Option Bypass via FinalizationRegistry Cleanup Callback (Unbounded Host Event-Loop Block)
- Duplicate Advisory: vm2 crypto builtin loads attacker native code through setEngine
- Duplicate Advisory: vm2 3.11.6 allows a sandboxed plugin to execute native code through `node:sqlite`
- Duplicate Advisory: NodeVM nesting guard accepts array-shaped require and permits host RCE
- Duplicate Advisory: vm2 exposes host HTTPS credentials and TLS traffic through globalAgent
- Duplicate Advisory: vm2 leaks absolute host filesystem paths to sandbox code via error stack formatting
- vm2 has Memory Exhaustion DoS via bufferAllocLimit Bypass
- vm2: NodeVM `builtin: ['*']` exposes `os` and `dns` — process-wide observability reads AND writes that hijack the host (sibling class of GHSA-9g8x-92q2-p28f)
- vm2: Sandbox Breakout Using Dangerous Host Proto Mutators
- VM2 has Missing Error.cause Sanitization that Enables Sandbox Escape to RCE
- vm2's bufferAllocLimit cap bypassed by Buffer.concat and Buffer.from arrayLike
- NodeVM observability builtins leak host process and HTTP request data
- NodeVM network builtin exclusions bypass via internal _http_client and _http_server
- NodeVM builtin denylist bypass via process and inspector/promises allows host code execution
- vm2 sandbox escape via JSPI-backed Promise `.finally()` species bypass
- vm2 has a CVE-2023-37903 patch bypass: nesting:true without explicit require still allows full RCE
- vm2's Bridge Proxy set trap ignores receiver parameter, enabling host object property injection via prototype chain
- vm2 has a sandbox escape via unblocked cross-realm Symbol.for keys + missing bridge write-trap symbol checks
- vm2 is Vulnerable to Sandbox Breakout Through Promise Species
- vm2 setup-sandbox.js violates Defense Invariant #11 in stack-trace formatter
- vm2 has a Sandbox Escape issue
- vm2 Has a Sandbox Breakout Using Async Generator
- vm2 has access to `VM2_INTERNAL_STATE_DO_NOT_USE_OR_PROGRAM_WILL_FAIL`
- vm2 has Sandbox Breakout Through Null Proto Exception
- vm2 has sandbox breakout via `neutralizeArraySpeciesBatch`
- vm2 NodeVM `nesting: true` bypasses `require: false` allowing sandbox escape and arbitrary OS command execution
- vm2 has a NodeVM require.root bypass via symlink traversal that allows sandbox escape
- vm2's Transformer Fast-Path Bypass Exposes Internal State Variable
- vm2 is Vulnerable to Host File Path Disclosure via Stack Trace Information Leak
- vm2 Host Promise Resolution Preserves Object Identity Across Sandbox Boundary
- vm2 Sandbox Access to Host Buffer.alloc Allows timeout Bypass Resulting in Memory Exhaustion
- vm2 has a Sandbox Escape via Promise Constructor Unhandled Rejection (Process Crash DoS)
- vm2 has a NodeVM builtin allowlist bypass via `module` builtin's `Module._load` that allows sandbox escape
- vm2: Mutable Proxies for Host Intrinsic Prototypes Allows Sandbox Escape
- vm2 Access to Host Object Enables Sandbox Escape
- vm2 has a Sandbox Escape Vulnerability
- VM2 Has a WASM Sandbox Escape
- VM2 Has a Sandbox Escape Issue via SuppressedError
- VM2 Has Sandbox Breakout Through Inspect Function
- VM2 Has Sandbox Breakout Through Promise Species
- VM2 Sandbox Breakout Through __lookupGetter__
- vm2 has a Sandbox Escape
- vm2 Sandbox Escape vulnerability
- vm2 Sandbox Escape vulnerability
- vm2 vulnerable to Inspect Manipulation
- vm2 Sandbox Escape vulnerability
proxy.golang.org: github.com/patriksimek/vm2
- Homepage:
- Documentation: https://pkg.go.dev/github.com/patriksimek/vm2#section-documentation
- Licenses: mit
- Latest release: v3.12.2+incompatible (published about 2 months ago)
- Last Synced: 2026-11-04T17:46:00.890Z (2 days ago)
- Versions: 20
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.301%
- Average: 6.513%
- Dependent repos count: 6.725%
npmjs.org: @mafintosh/vm2
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.9.2 (published almost 6 years ago)
- Last Synced: 2026-11-05T01:22:14.948Z (2 days ago)
- Versions: 1
- Dependent Packages: 2
- Dependent Repositories: 0
- Downloads: 26 Last month
-
Rankings:
- Stargazers count: 1.897%
- Forks count: 2.585%
- Dependent packages count: 9.482%
- Average: 13.496%
- Dependent repos count: 25.328%
- Downloads: 28.187%
- Maintainers (1)
npmjs.org: vm2-zhy
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.6.2 (published over 8 years ago)
- Last Synced: 2026-11-04T19:57:39.511Z (2 days ago)
- Versions: 1
- Dependent Packages: 1
- Dependent Repositories: 1
- Downloads: 18 Last month
-
Rankings:
- Stargazers count: 1.549%
- Forks count: 2.114%
- Dependent repos count: 10.77%
- Average: 16.359%
- Dependent packages count: 21.319%
- Downloads: 46.043%
- Maintainers (1)
repo1.maven.org: org.webjars.npm:vm2
WebJar for vm2
- Homepage: https://www.webjars.org
- Documentation: https://appdoc.app/artifact/org.webjars.npm/vm2/
- Licenses: MIT
- Latest release: 3.9.19 (published over 3 years ago)
- Last Synced: 2026-11-04T17:45:59.416Z (2 days ago)
- Versions: 2
- Dependent Packages: 2
- Dependent Repositories: 0
-
Rankings:
- Stargazers count: 4.256%
- Forks count: 9.885%
- Average: 19.53%
- Dependent repos count: 31.98%
- Dependent packages count: 31.998%
npmjs.org: charon-vm3
vm3 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 2.3.0-alpha.1 (published almost 3 years ago)
- Last Synced: 2026-11-05T00:42:12.026Z (2 days ago)
- Versions: 4
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 24 Last month
-
Rankings:
- Stargazers count: 1.475%
- Forks count: 1.993%
- Average: 21.39%
- Dependent repos count: 33.85%
- Dependent packages count: 48.244%
- Maintainers (1)
npmjs.org: vm2-memory-opt
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.6.7 (published almost 8 years ago)
- Last Synced: 2026-11-05T03:14:01.190Z (2 days ago)
- Versions: 8
- Dependent Packages: 0
- Dependent Repositories: 1
- Downloads: 39 Last month
-
Rankings:
- Stargazers count: 1.549%
- Forks count: 2.114%
- Dependent repos count: 10.77%
- Average: 21.711%
- Downloads: 40.517%
- Dependent packages count: 53.607%
- Maintainers (1)
npmjs.org: @novolobos/nodevm
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules.
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.10.5 (published 8 months ago)
- Last Synced: 2026-11-05T10:36:26.293Z (1 day ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 20 Last month
-
Rankings:
- Dependent repos count: 22.446%
- Average: 27.405%
- Dependent packages count: 32.364%
- Maintainers (1)
npmjs.org: usezap-vm2
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/your-username/usezap#readme
- Licenses: MIT
- Latest release: 3.9.19 (published over 1 year ago)
- Last Synced: 2026-11-04T17:58:35.074Z (2 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 9 Last month
-
Rankings:
- Dependent repos count: 24.329%
- Average: 29.719%
- Dependent packages count: 35.108%
- Maintainers (1)
npmjs.org: @usebruno/vm2
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.9.19 (published over 2 years ago)
- Last Synced: 2026-11-05T01:41:11.472Z (2 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 76,362 Last month
-
Rankings:
- Dependent repos count: 27.29%
- Average: 33.473%
- Dependent packages count: 39.656%
- Maintainers (2)
npmjs.org: @zhennann/vm2
vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Securely!
- Homepage: https://github.com/patriksimek/vm2#readme
- Licenses: MIT
- Latest release: 3.9.19 (published over 2 years ago)
- Last Synced: 2026-11-04T21:04:00.932Z (2 days ago)
- Versions: 1
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 63 Last month
-
Rankings:
- Dependent repos count: 30.09%
- Average: 36.58%
- Dependent packages count: 43.07%
- Maintainers (1)
Dependencies
- 188 dependencies
- eslint ^5.16.0 development
- eslint-config-integromat ^1.5.0 development
- mocha ^6.2.2 development
- acorn ^8.7.0
- acorn-walk ^8.2.0
- actions/checkout v4 composite
- actions/setup-node v4 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- oven-sh/setup-bun v2 composite
- actions/checkout v4 composite
- actions/setup-node v4 composite
- oven-sh/setup-bun v2 composite