CVE-2026-70609: Code Injection
Impact The mode option of webContents.openDevTools() was not sanitized before use by the DevTools frontend. If an attacker can influence this value, script under their control may run in the DevTools context, which in unsandboxed configurations has access to Node.js.
Apps are only affected if untrusted input can reach the mode argument of openDevTools(), or if untrusted content can call openDevTools() on a <webview> it embeds. Apps that only ever pass a fixed dock mode are not affected.
Workarounds Only pass fixed, allowlisted values (right, bottom, undocked, detach) as the DevTools mode, and do not expose openDevTools to untrusted content.
Fixed Versions 42.0.0-beta.1 41.2.0 40.9.0 39.8.7
For more information If you have any questions or comments about this advisory, email Electron at security@electronjs.org
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 42.0.0-beta.1 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 41.2.0 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 40.9.0 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 39.8.7 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 39.8.7 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 40.9.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 41.2.0 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 42.0.0-beta.1 - Configuration
Only pass fixed, allowlisted values (right, bottom, undocked, detach) as the DevTools mode argument to webContents.openDevTools(); do not pass attacker-influenced values.
Electron webContents.openDevTools() mode argument = allowlisted: right, bottom, undocked, detach - Configuration
Do not expose webContents.openDevTools() to untrusted content (e.g., prevent untrusted content from calling openDevTools on an embedded <webview>).
Electron openDevTools() exposure openDevTools availability = disabled for untrusted content