CVE-2026-34765 Overview
A vulnerability has been identified in Electron, the popular framework for writing cross-platform desktop applications using JavaScript, HTML, and CSS. The flaw exists in how Electron handles window.open() calls with target names, where the framework fails to correctly scope the named-window lookup to the opener's browsing context group. This allows a renderer process to navigate an existing child window that was opened by a different, unrelated renderer if both use the same target name.
Critical Impact
Applications that open multiple top-level windows with differing trust levels and use setWindowOpenHandler to grant child windows elevated webPreferences (such as privileged preload scripts) may allow attackers to inherit elevated permissions. Applications that additionally grant nodeIntegration: true or sandbox: false to child windows may be exposed to arbitrary code execution.
Affected Products
- Electron versions prior to 39.8.5
- Electron versions prior to 40.8.5
- Electron versions prior to 41.1.0
- Electron versions prior to 42.0.0-alpha.5
Discovery Timeline
- 2026-04-07 - CVE CVE-2026-34765 published to NVD
- 2026-04-08 - Last updated in NVD database
Technical Details for CVE-2026-34765
Vulnerability Analysis
This vulnerability is classified under CWE-668 (Exposure of Resource to Wrong Sphere), indicating an improper isolation of resources between different security contexts. The root issue lies in Electron's window management system, where the named-window lookup mechanism does not properly enforce browsing context group boundaries.
When a renderer process invokes window.open() with a specific target name, Electron should scope the lookup for an existing window with that name to the opener's browsing context group. However, due to this vulnerability, the lookup is not properly scoped, allowing cross-context window navigation.
The attack scenario involves an attacker-controlled renderer using a target name that matches an existing child window opened by a separate, more privileged renderer. If the privileged window was created with elevated webPreferences through setWindowOpenHandler's overrideBrowserWindowOptions, the attacker's content loaded in that window inherits those elevated permissions.
Root Cause
The vulnerability stems from improper isolation in Electron's window naming resolution logic. The framework fails to enforce browsing context group boundaries when resolving named windows, violating the expected security isolation model. This allows renderers from different origins or trust levels to share window references when they should be completely isolated.
Attack Vector
The attack is network-based and requires low privileges to execute. An attacker must have the ability to execute JavaScript within a renderer process of a vulnerable Electron application. The attack flow involves:
- Identifying that the target application uses multiple top-level windows with differing trust levels
- Determining that the application uses setWindowOpenHandler to grant elevated webPreferences to child windows
- Calling window.open() with a target name matching an existing privileged child window
- Loading attacker-controlled content that inherits the elevated permissions
The vulnerability mechanism relies on predictable window naming patterns and applications that configure elevated permissions for child windows. Applications granting nodeIntegration: true or sandbox: false to child windows face the highest risk, potentially enabling arbitrary code execution. For detailed technical information, see the GitHub Security Advisory.
Detection Methods for CVE-2026-34765
Indicators of Compromise
- Unexpected navigation events in child windows from unrelated parent contexts
- JavaScript execution in child windows that should be isolated from the calling renderer
- Anomalous preload script behavior or unexpected Node.js API calls from untrusted content
Detection Strategies
- Monitor for window.open() calls with target names that match existing windows from different browsing context groups
- Implement application-level logging for setWindowOpenHandler invocations and overrideBrowserWindowOptions usage
- Review application architecture for patterns involving multiple trust-level windows with shared target names
Monitoring Recommendations
- Audit Electron application configurations for elevated webPreferences granted to child windows
- Monitor for applications using nodeIntegration: true or sandbox: false in child window configurations
- Implement runtime monitoring for cross-context window access attempts
How to Mitigate CVE-2026-34765
Immediate Actions Required
- Upgrade Electron to version 39.8.5, 40.8.5, 41.1.0, or 42.0.0-alpha.5 or later immediately
- Review application architecture and eliminate configurations that grant elevated webPreferences to child windows
- Ensure nodeIntegration: false and sandbox: true for all child windows as recommended by Electron security guidelines
- Consider using a single top-level window architecture if multiple trust levels are not required
Patch Information
The vulnerability has been addressed in Electron versions 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5. Organizations should update to these patched versions immediately. Full details are available in the GitHub Security Advisory.
Workarounds
- Avoid using setWindowOpenHandler to grant elevated webPreferences to child windows until patches are applied
- Use unique, randomized target names for window.open() calls to reduce predictability
- Implement strict content security policies to limit the impact of cross-context navigation
- Consolidate application architecture to minimize the use of multiple trust-level windows
# Example: Check Electron version in your project
npm list electron
# Update Electron to patched version
npm update electron@39.8.5
# or for newer branches
npm update electron@40.8.5
npm update electron@41.1.0
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

