vm2 allows a sandboxed plugin to execute native code through `node:sqlite` (Critical severity, CVE-2026-92938)
A critical-severity advisory for the npm package vm2 is fixed in version 3.11.7.

Key points
- vm2 (npm) has a critical flaw.
- Tracked as CVE-2026-92938.
- Version 3.11.7.
Maintainers of vm2, a package in the npm ecosystem, have published a critical-severity security advisory (CVE-2026-92938): vm2 allows a sandboxed plugin to execute native code through `node:sqlite`.
At a glance
- Advisory
- GHSA-6w8r-xxw2-g3hx
- CVE
- CVE-2026-92938
- Package
- vm2 (npm)
- Severity
- Critical
- Patched in
- 3.11.7
What is the issue?
The GitHub-reviewed advisory explains: Summary vm2 3.11.6 exposes Node.js's host node:sqlite module to NodeVM code when that builtin is allowed explicitly or through builtin: ['']. The module is wrapped as read-only, but callable methods retain host-process authority. A sandboxed plugin can construct an in-memory database with extension loading enabled and call DatabaseSync.loadExtension() on a native library bundled in the plugin directory. SQLite loads the library into the Node.js host process and invokes its native extension entry point. This gives the untrusted plugin arbitrary native code execution outside the sandbox. The exploit needs only the node:sqlite builtin and a compatible native library already present in the untrusted plugin package. It does not require fs, process, module, child_process, worker_threads, vm, inspector, vm2 nesting, or an existing database file. Details The vulnerable boundary spans the builtin
Affected versions
| Ecosystem | Package | Vulnerable | Patched |
|---|---|---|---|
| npm | vm2 | >= 3.11.3, <= 3.11.6 | 3.11.7 |
The advisory lists a CVSS score of 9.9.
How to fix it
- Upgrade the affected package to the first patched version listed above.
- Rebuild and redeploy applications that bundle the vulnerable dependency.
- Run your dependency scanner (npm audit, pip-audit, Dependabot) to find transitive uses.
- Review the advisory references for workaround details if you cannot upgrade yet.
What to do and how to stay safe: CVE-2026-92938
- Patch scores alone ignore context like network exposure and asset criticality.
- You must map vulnerabilities to specific business risks to prioritize correctly.
- Continuous exposure data replaces static scanning for accurate prioritization.
Prioritize vulnerabilities by actual exploitability and business impact, not by theoretical severity scores. Update your asset context and exposure data continuously to maintain accurate risk rankings.
Step-by-step guide: Risk Based Vulnerability Management: Prioritize Fixes by Actual Threat
General security guidance from the Threat Times newsroom. It is not confirmed advice from the organisations named in this story.
Frequently asked questions
What is CVE-2026-92938?
CVE-2026-92938 is a security vulnerability in vm2 (npm).
Which version fixes CVE-2026-92938?
The fix is in version 3.11.7.


