Electron vulnerabilities
33 known CVE vulnerabilities in Electron, translated and rated.
- CVE-2026-70602Medium
A vulnerability in Electron prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3 occurs because extension tab and scripting APIs were not scoped to the extension's own session. A malicious or compromised extension loaded into one session could navigate, script, and read from windows belonging to a different session. Apps are only affected if they load Chrome extensions via session.loadExtension and rely on separate sessions to isolate that extension from other content.
- CVE-2026-70612Medium
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3, requests to open external protocol URLs from web content did not take iframe sandbox restrictions into account, so a sandboxed iframe could cause an OS-registered external application to be launched. The frame sandbox state was also not made available to the app permission handlers, affecting apps that render untrusted content in sandboxed iframes and grant the openExternal permission by default when no setPermissionRequestHandler is installed.
- CVE-2026-70611Medium
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.9, 40.9.2, 41.2.1, and 42.0.0-beta.3, the DevTools reveal in file manager action could launch the target file rather than reveal it. An attacker with a separate means of running script inside the DevTools frontend, such as a malicious DevTools extension, could use showItemInFolder handling to execute native code outside the sandbox when DevTools is opened for windows exposed to untrusted content or untrusted DevTools extensions.
- CVE-2026-70610Medium
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.4, objects copied across the contextBridge boundary from untrusted content could carry an attacker-influenced prototype, enabling prototype-pollution-style attacks against preload code despite context isolation being enabled. Apps are only affected if their preload code accepts object arguments from untrusted content and reads properties from them without own-property checks, while apps that only accept primitive arguments or validate object arguments are not affected.
- CVE-2026-70609Medium
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.7, 40.9.0, 41.2.0, and 42.0.0-beta.1, 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, including when untrusted input reaches the mode argument of openDevTools() or untrusted content calls openDevTools() on a webview it embeds.
- CVE-2026-70608High
Electron before versions 39.8.10, 41.10.3, and 42.0.1 allowed a sandboxed iframe without the allow-popups keyword to open new windows or trigger setWindowOpenHandler without user interaction. This occurs because new-window navigations taking the OpenURL path did not apply the iframe sandbox popup restriction. Apps that embed untrusted content in sandboxed iframes and rely on the absence of allow-popups are affected, while apps that deny window creation in setWindowOpenHandler or do not embed untrusted content are not.
- CVE-2026-70607Medium
Electron (before versions 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3) applies some window options supplied by web content in the window.open() features string to the new BrowserWindow without an allowlist. Untrusted content could set window options it should not control, including options that cause the main process to access attacker-chosen file or network paths, when untrusted content can call window.open() and the app does not override child window options via setWindowOpenHandler or overrideBrowserWindowOptions.
- CVE-2026-70606Medium
A vulnerability in Electron prior to 40.10.6, 41.9.1, 42.5.1, and 43.0.0 occurs when a custom protocol handler returns a ProtocolResponse with a url and no session, causing the request to go through defaultSession instead of the session that handled the protocol. This can lead to cached responses being reused across isolated session partitions. Apps using ProtocolResponse.url, omitting ProtocolResponse.session, and relying on separate sessions are affected.
- CVE-2026-70605Medium
A vulnerability in Electron prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3 occurs when following HTTP redirects, net.fetch() and net.request() did not restrict which schemes a redirect could target. A remote server could redirect a request to a local resource, and if the app returns or forwards the response body, local file contents could be disclosed. Apps are only affected if they make net requests to attacker-influenced URLs with redirects followed and expose the response body.
- CVE-2026-70604High
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.10, 40.9.3, 41.4.0, and 42.0.0, a custom scheme registered with supportFetchAPI: true but without corsEnabled: true was not subject to CORS enforcement. A page loaded from a remote origin could therefore fetch() or XMLHttpRequest that scheme cross-origin and read the full response body. Apps that serve sensitive data from such a scheme and load remote or untrusted content in a renderer are affected.
- CVE-2026-70603Medium
A vulnerability in Electron prior to 39.8.6, 40.9.0, 41.1.1, and 42.0.0-beta.1 occurs because shell.openPath() did not reject paths containing embedded null bytes. Apps that perform string-only validation of file paths, such as checking the file extension, before passing them to shell.openPath() could be bypassed, allowing an attacker-controlled path to open a different file than the one that passed validation. Apps are only affected if they pass paths derived from untrusted input and rely on string-based validation without a filesystem check.
- CVE-2026-70601High
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.5, apps that expose Promise-returning functions to web content via contextBridge may be vulnerable to a context isolation bypass. Untrusted web content could obtain access to the isolated preload world and, through it, every capability the preload script has. In renderers without a sandbox, or with nodeIntegration enabled, this may escalate to Node.js access.
- CVE-2026-70600Low
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3, the native autofill popup could be positioned by a cross-origin iframe outside that iframe's bounds, over the embedding page's UI, enabling clickjacking or spoofing of trusted UI. Apps are only affected if they embed untrusted content in iframes within windows that also display trusted UI. Apps that do not embed untrusted third-party content are not affected.
- CVE-2026-70599Medium
In Electron prior to 39.8.7, 40.9.0, 41.2.0, and 42.0.0-beta.1, serial-port and media permission checks made from an iframe passed the top-level frame origin to session.setPermissionCheckHandler instead of the requesting iframe origin. Origin-based handler logic could grant a cross-origin iframe device access intended only for the top-level origin.
- CVE-2026-70598Low
Electron is a framework for writing cross-platform desktop applications. Prior to 39.8.10, 40.9.0, 41.2.1, and 42.0.0-beta.3, offscreen rendering frame data received from the GPU process was not fully validated by the main process. A compromised GPU process could cause the main process to read out-of-bounds memory while producing paint event images, disclosing memory or crashing the app.
- CVE-2026-70597Medium
In Electron prior to 39.8.8, 40.9.0, 41.2.1, and 42.0.0-beta.3, the check Electron uses on macOS to confirm it was launched by a same-signed parent process could be bypassed by a local process. Apps that enable fuse-based hardening restricting ELECTRON_RUN_AS_NODE and NODE_OPTIONS to same-signed parents rely on this check, and a local attacker could bypass it and run code inside the signed app, inheriting its TCC permissions and keychain access.
- CVE-2026-34781Low
In Electron prior to versions 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5, a vulnerability was found in the clipboard.readImage() function. If the clipboard contains image data that fails to decode, passing a null bitmap to image construction causes a controlled abort and process crash. Only apps calling clipboard.readImage() are affected.
- CVE-2026-34765Medium
Electron before versions 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5 contains a vulnerability where a child window can be navigated by an unrelated renderer if both use the same target name. This can lead to privilege escalation, and if nodeIntegration is enabled or sandbox disabled, to remote code execution.
- CVE-2026-34780High
Electron versions from 39.0.0-alpha.1 to before 39.8.0, 40.0.0-alpha.1 to before 40.7.0, and 41.0.0-alpha.1 to before 41.0.0-beta.8 contain a context isolation bypass vulnerability. Apps that pass VideoFrame objects (from the WebCodecs API) across the contextBridge are vulnerable. An attacker who can execute JavaScript in the main world (e.g., via XSS) can use a bridged VideoFrame to gain access to the isolated world, including any Node.js APIs exposed to the preload script.
- CVE-2026-34779Medium
Vulnerability in Electron (versions before 38.8.6, 39.8.1, 40.8.0, 41.0.0-beta.8) on macOS. The app.moveToApplicationsFolder() function uses AppleScript that improperly handles certain characters in the path, potentially leading to arbitrary AppleScript execution when the user accepts the prompt.
- CVE-2026-34778Medium
In Electron prior to versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0, a service worker running in a session can spoof reply messages on the internal IPC channel used by webContents.executeJavaScript() and related methods, causing the main-process promise to resolve with attacker-controlled data.
- CVE-2026-34777Medium
In Electron prior to versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0, when an iframe requests fullscreen, pointerLock, keyboardLock, openExternal, or media permissions, the origin passed to session.setPermissionRequestHandler() was the top-level page's origin rather than the requesting iframe's origin. Apps that grant permissions based on the origin parameter may inadvertently grant permissions to embedded third-party content.
- CVE-2026-34776Medium
Electron before versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0 on macOS and Linux has an out-of-bounds heap read vulnerability when parsing a crafted second-instance message if the app calls app.requestSingleInstanceLock(). Leaked memory can be delivered to the app's second-instance event handler. This issue is limited to processes running as the same user as the Electron app. Windows is not affected.
- CVE-2026-34775Medium
In Electron prior to versions 38.8.6, 39.8.4, 40.8.4, and 41.0.0, the nodeIntegrationInWorker setting was not correctly scoped. In certain process-sharing scenarios, workers spawned in frames with nodeIntegrationInWorker: false could still receive Node.js integration. Only apps that enable nodeIntegrationInWorker are affected.
- CVE-2026-34774High
Electron before versions 39.8.1, 40.7.0, and 41.0.0 has a use-after-free vulnerability in apps using offscreen rendering and allowing child windows via window.open(). Destroying the parent WebContents while a child window is open can lead to a crash or memory corruption.
- CVE-2026-34773Medium
Electron on Windows does not validate the protocol name in app.setAsDefaultProtocolClient() before writing to the registry. Apps passing untrusted input as the protocol name may allow an attacker to write to arbitrary registry subkeys, potentially hijacking existing protocol handlers.
- CVE-2026-34772Medium
Electron, a framework for building desktop applications, has a use-after-free vulnerability when apps allow downloads and programmatically destroy sessions. If a session is torn down while a native save-file dialog is open, dismissing the dialog dereferences freed memory, potentially leading to a crash or memory corruption. This affects versions prior to 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8.
- CVE-2026-34771High
Electron prior to versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8 is vulnerable to a use-after-free when handling fullscreen, pointer-lock, or keyboard-lock permission requests if the app registers an asynchronous `session.setPermissionRequestHandler()`. If the requesting frame navigates or the window closes while the permission handler is pending, invoking the stored callback dereferences freed memory, which may lead to a crash or memory corruption.
- CVE-2026-34770High
Electron before versions 38.8.6, 39.8.1, 40.8.0, and 41.0.0-beta.8 contains a use-after-free vulnerability in the powerMonitor module. After the PowerMonitor object is garbage-collected, OS resources retain dangling references, leading to crashes or memory corruption on session events (Windows) or system shutdown (macOS).
- CVE-2026-34769High
Electron prior to versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8 has an undocumented commandLineSwitches webPreference that allows arbitrary switches to be appended to the renderer process command line. Apps constructing webPreferences from untrusted configuration objects may allow an attacker to disable renderer sandboxing or web security controls.
- CVE-2026-34768Low
Electron on Windows fails to quote the executable path when writing to the Run registry key, allowing an attacker with write access to an ancestor directory to replace the startup executable.
- CVE-2026-34767Medium
Electron, a framework for building desktop applications, has an HTTP response header injection vulnerability. Apps that register custom protocol handlers via protocol.handle() or modify response headers via webRequest.onHeadersReceived may be vulnerable if attacker-controlled input is reflected into a response header name or value. This affects versions prior to 38.8.6, 39.8.3, 40.8.3, and 41.0.3.
- CVE-2026-34766Low
In Electron before versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8, the select-usb-device event callback does not validate the chosen device ID against the filtered list. An app whose handler can be influenced to select a device outside the filtered set may grant access to an unauthorized USB device.

