chore(deps): update dependency electron to v35 [security]
This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| electron | 6.0.0 -> 35.7.5 |
GitHub Vulnerability Alerts
CVE-2020-4075
Impact
The vulnerability allows arbitrary local file read by defining unsafe window options on a child window opened via window.open.
Workarounds
Ensure you are calling event.preventDefault() on all new-window events where the url or options is not something you expect.
Fixed Versions
9.0.0-beta.218.2.47.2.4
For more information
If you have any questions or comments about this advisory:
- Email us at [email protected]
CVE-2020-4077
Impact
Apps using both contextIsolation and contextBridge are affected.
This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
Workarounds
There are no app-side workarounds, you must update your Electron version to be protected.
Fixed Versions
9.0.0-beta.218.2.47.2.4
For more information
If you have any questions or comments about this advisory:
- Email us at [email protected]
CVE-2020-4076
Impact
Apps using contextIsolation are affected.
This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
Workarounds
There are no app-side workarounds, you must update your Electron version to be protected.
Fixed Versions
9.0.0-beta.218.2.47.2.4
Non-Impacted Versions
9.0.0-beta.*
For more information
If you have any questions or comments about this advisory:
- Email us at [email protected]
CVE-2020-15096
Impact
Apps using contextIsolation are affected.
This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
Workarounds
There are no app-side workarounds, you must update your Electron version to be protected.
Fixed Versions
9.0.0-beta.218.2.47.2.46.1.11
For more information
If you have any questions or comments about this advisory:
- Email us at [email protected]
CVE-2020-26272
Impact
IPC messages sent from the main process to a subframe in the renderer process, through webContents.sendToFrame, event.reply or when using the remote module, can in some cases be delivered to the wrong frame.
If your app does ANY of the following, then it is impacted by this issue:
- Uses
remote - Calls
webContents.sendToFrame - Calls
event.replyin an IPC message handler
Patches
This has been fixed in the following versions:
- 9.4.0
- 10.2.0
- 11.1.0
- 12.0.0-beta.9
Workarounds
There are no workarounds for this issue.
For more information
If you have any questions or comments about this advisory, email us at [email protected].
CVE-2021-39184
Impact
This vulnerability allows a sandboxed renderer to request a "thumbnail" image of an arbitrary file on the user's system. The thumbnail can potentially include significant parts of the original file, including textual data in many cases.
All current stable versions of Electron are affected.
Patches
This was fixed with #30728, and the following Electron versions contain the fix:
- 15.0.0-alpha.10
- 14.0.0
- 13.3.0
- 12.1.0
- 11.5.0
Workarounds
If your app enables contextIsolation, this vulnerability is significantly more difficult for an attacker to exploit.
Further, if your app does not depend on the createThumbnailFromPath API, then you can simply disable the functionality. In the main process, before the 'ready' event:
delete require('electron').nativeImage.createThumbnailFromPath
For more information
If you have any questions or comments about this advisory, email us at [email protected].
CVE-2022-21718
Impact
This vulnerability allows renderers to obtain access to a random bluetooth device via the web bluetooth API if the app has not configured a custom select-bluetooth-device event handler. The device that is accessed is random and the attacker would have no way of selecting a specific device.
All current stable versions of Electron are affected.
Patches
This has been patched and the following Electron versions contain the fix:
17.0.0-alpha.616.0.615.3.514.2.413.6.6
Workarounds
Adding this code to your app can workaround the issue.
app.on('web-contents-created', (event, webContents) => {
webContents.on('select-bluetooth-device', (event, devices, callback) => {
// Prevent default behavior
event.preventDefault();
// Cancel the request
callback('');
});
});
For more information If you have any questions or comments about this advisory, email us at [email protected].
CVE-2022-29247
Impact
This vulnerability allows a renderer with JS execution to obtain access to a new renderer process with nodeIntegrationInSubFrames enabled which in turn allows effective access to ipcRenderer.
Please note the misleadingly named nodeIntegrationInSubFrames option does not implicitly grant Node.js access rather it depends on the existing sandbox setting. If your application is sandboxed then nodeIntegrationInSubFrames just gives access to the sandboxed renderer APIs (which includes ipcRenderer).
If your application then additionally exposes IPC messages without IPC senderFrame validation that perform privileged actions or return confidential data this access to ipcRenderer can in turn compromise your application / user even with the sandbox enabled.
Patches
This has been patched and the following Electron versions contain the fix:
18.0.0-beta.617.2.016.2.615.5.5
Workarounds
Ensure that all IPC message handlers appropriately validate senderFrame as per our security tutorial here.
For more information
If you have any questions or comments about this advisory, email us at [email protected].
CVE-2022-29257
Impact
This vulnerability allows attackers who have control over a given apps update server / update storage to serve maliciously crafted update packages that pass the code signing validation check but contain malicious code in some components.
Please note that this kind of attack would require significant privileges in your own auto updating infrastructure and the ease of that attack entirely depends on your infrastructure security.
Patches
This has been patched and the following Electron versions contain the fix:
18.0.0-beta.617.2.016.2.015.5.0
Workarounds
There are no workarounds for this issue, please update to a patched version of Electron.
For more information
If you have any questions or comments about this advisory, email us at [email protected]
CVE-2022-36077
Impact
When following a redirect, Electron delays a check for redirecting to file:// URLs from other schemes. The contents of the file is not available to the renderer following the redirect, but if the redirect target is a SMB URL such as file://some.website.com/, then in some cases, Windows will connect to that server and attempt NTLM authentication, which can include sending hashed credentials.
Patches
This issue has been fixed in all current stable versions of Electron. Specifically, these versions contain the fixes:
- 21.0.0-beta.1
- 20.0.1
- 19.0.11
- 18.3.7
We recommend all apps upgrade to the latest stable version of Electron.
Workarounds
If upgrading isn't possible, this issue can be addressed without upgrading by preventing redirects to file:// URLs in the WebContents.on('will-redirect') event, for all WebContents:
app.on('web-contents-created', (e, webContents) => {
webContents.on('will-redirect', (e, url) => {
if (/^file:/.test(url)) e.preventDefault()
})
})
For more information
If you have any questions or comments about this advisory, email us at [email protected].
Credit
Thanks to user @coolcoolnoworries for reporting this issue.
CVE-2023-29198
Impact
Apps using contextIsolation and contextBridge are affected.
This is a context isolation bypass, meaning that code running in the main world context in the renderer can reach into the isolated Electron context and perform privileged actions.
Workarounds
This issue is exploitable under either of two conditions:
- If an API exposed to the main world via
contextBridgecan return an object or array that contains a JS object which cannot be serialized, for instance, a canvas rendering context. This would normally result in an exception being thrownError: object could not be cloned. - If an API exposed to the main world via
contextBridgehas a return value that throws a user-generated exception while being sent over the bridge, for instance a dynamic getter property on an object that throws an error when being computed.
The app side workaround is to ensure that such a case is not possible. Ensure all values returned from a function exposed over the context bridge are supported and that any objects returned from functions do not have dynamic getters that can throw exceptions.
Auditing your exposed API is likely to be quite difficult so we strongly recommend you update to a patched version of Electron.
Fixed Versions
25.0.0-alpha.224.0.123.2.322.3.6
For more information
If you have any questions or comments about this advisory, email us at [email protected]
CVE-2023-39956
Impact
Apps that are launched as command line executables are impacted. E.g. if your app exposes itself in the path as myapp --help
Specifically this issue can only be exploited if the following conditions are met:
- Your app is launched with an attacker-controlled working directory
- The attacker has the ability to write files to that working directory
This makes the risk quite low, in fact normally issues of this kind are considered outside of our threat model as similar to Chromium we exclude Physically Local Attacks but given the ability for this issue to bypass certain protections like ASAR Integrity it is being treated with higher importance. Please bear this in mind when reporting similar issues in the future.
Workarounds
There are no app side workarounds, you must update to a patched version of Electron.
Fixed Versions
26.0.0-beta.1325.5.024.7.123.3.1322.3.19
For more information
If you have any questions or comments about this advisory, email us at [email protected]
CVE-2023-5217
Heap buffer overflow in vp8 encoding in libvpx in Google Chrome prior to 117.0.5938.132 and libvpx 1.13.1 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
CVE-2023-44402
Impact
This only impacts apps that have the embeddedAsarIntegrityValidation and onlyLoadAppFromAsar fuses enabled. Apps without these fuses enabled are not impacted. This issue is specific to macOS as these fuses are only currently supported on macOS.
Specifically this issue can only be exploited if your app is launched from a filesystem the attacker has write access too. i.e. the ability to edit files inside the resources folder in your app installation on Windows which these fuses are supposed to protect against.
Workarounds
There are no app side workarounds, you must update to a patched version of Electron.
Fixed Versions
27.0.0-alpha.726.2.125.8.124.8.322.3.24
For more information
If you have any questions or comments about this advisory, email us at [email protected]
CVE-2024-46993
Impact
The nativeImage.createFromPath() and nativeImage.createFromBuffer() functions call a function downstream that is vulnerable to a heap buffer overflow. An Electron program that uses either of the affected functions is vulnerable to a buffer overflow if an attacker is in control of the image's height, width, and contents.
Workaround
There are no app-side workarounds for this issue. You must update your Electron version to be protected.
Patches
v28.3.2v29.3.3v30.0.3
For More Information
If you have any questions or comments about this advisory, email us at [email protected].
CVE-2025-55305
Impact
This only impacts apps that have the embeddedAsarIntegrityValidation and onlyLoadAppFromAsar fuses enabled. Apps without these fuses enabled are not impacted.
Specifically this issue can only be exploited if your app is launched from a filesystem the attacker has write access too. i.e. the ability to edit files inside the resources folder in your app installation on Windows which these fuses are supposed to protect against.
Workarounds
There are no app side workarounds, you must update to a patched version of Electron.
Fixed Versions
38.0.0-beta.637.3.136.8.135.7.5
For more information
If you have any questions or comments about this advisory, email us at [email protected]
Release Notes
electron/electron (electron)
v35.7.5: electron v35.7.5
Release Notes for v35.7.5
[!WARNING] Electron 35.x.y has reached end-of-support as per the project's support policy. Developers and applications are encouraged to upgrade to a newer version of Electron.
Fixes
v35.7.4: electron v35.7.4
Release Notes for v35.7.4
- Fix ffmpeg generation on Windows non-x64
v35.7.2: electron v35.7.2
Release Notes for v35.7.2
Fixes
- Fixed an issue where printing PDFs with
webContents.print({ silent: true })would fail. #47645 (Also in 36, 37)
v35.7.0: electron v35.7.0
Release Notes for v35.7.0
Other Changes
- Updated Node.js to v22.16.0. #47213
v35.6.0: electron v35.6.0
Release Notes for v35.6.0
Features
- Added support for
--no-experimental-global-navigatorflag. #47416 (Also in 36, 37) - Added support for customizing system accent color and highlighting of active window border. #47539 (Also in 36, 37)
Fixes
- Fixed a potential crash using
session.clearDatain some circumstances. #47410 (Also in 36, 37) - Fixed an error when importing
electronfor the first time from an ESM module loaded by a CJS module in a packaged app. #47344 (Also in 36, 37) - Fixed an issue where calling
Fetch.continueResponsevia debugger withWebContentsViewcould cause a crash. #47443 (Also in 36, 37) - Fixed an issue where utility processes could leak file handles. #47542 (Also in 36, 37)
- Partially fixes an issue with printing a PDF via
webContents.print()where the callback would not be called. #47399 (Also in 36, 37)
Other Changes
v35.5.1: electron v35.5.1
Release Notes for v35.5.1
Fixes
- Fixed
addChildView()crashes when adding a closed WebContentsView. #47339 - Fixed crash in
autoUpdateron macOS when zip extraction failed. #47299 (Also in 34, 36, 37) - Fixed crash when pausing in loops due to missing context when desugared. #47286
Other Changes
- Security: backported fix for CVE-2025-5419. #47354
v35.5.0: electron v35.5.0
Release Notes for v35.5.0
Features
- Added innerWidth and innerHeight options for window.open. #47045 (Also in 36, 37)
- Added sublabel functionality for menus on macOS >= 14.4. #47041 (Also in 36, 37)
- Added support for
screen.dipToScreenPoint(point)andscreen.screenToDipPoint(point)on Linux X11. #47124 (Also in 36, 37) - Added support for node option
--experimental-network-inspection. #47029 (Also in 36, 37)
Fixes
- Fixed a possible crash in
shell.readShortcutLink. #47226 (Also in 36) - Fixed an issue where protected transparent windows inappropriately showed a titlebar after visibility change. #47265 (Also in 36, 37)
- Fixed an issue where the 'suspend' and 'resume' events could be emitted in duplicate. #47190 (Also in 36, 37)
- Fixed an issue where the
backgroundMaterialfeature did not work in a frameless window on initial window creation. #47236 (Also in 36) - Fixed opening package paths as directory when
treatPackageAsDirectoryis enabled on macOS. #47110 (Also in 36, 37) - Fixed regression with directory selection in macOS dialogs. #47276 (Also in 36, 37)
Other Changes
- Security: backported fix for
4033643. #47069 - Security: backported fix for CVE-2025-4609.
- Security: backported fix for CVE-2025-4664. #47175
- Updated Node.js to v22.15.1. #47102
v35.4.0: electron v35.4.0
Release Notes for v35.4.0
Features
Fixes
- Fixed a possible crash using the WebView tag and calling focus. #47035 (Also in 36, 37)
- Fixed an issue where the window flickers with either a light or dark color before loading the desired background color. #47052 (Also in 36, 37)
- Fixed crash in xdg portal version detection on startup. #47025 (Also in 36, 37)
- Restored previous window-hiding behavior of
win.setContentProtected()on Windows. #47034 (Also in 36, 37)
Other Changes
- Updated Node.js to v22.15.0. #46740
v35.3.0: electron v35.3.0
Release Notes for v35.3.0
Fixes
- Fixed a crash that could occur when opening some dialogs as windows are closing on macOS. #46953 (Also in 36, 37)
- Fixed an issue where transparent child windows on macOS were rendering a grey block as opposed to their correct contents. #46889 (Also in 36, 37)
- Fixed display id validation errors on certain versions of windows 10. #46873
- Fixed log files written to the current working directory on Windows. #46911 (Also in 36, 37)
- Fixed xdg portal version detection for file dialogs on linux. #46936 (Also in 36, 37)
Other Changes
v35.2.2: electron v35.2.2
Release Notes for v35.2.2
Fixes
- Fixed
electron.shell.openExternalandelectron.shell.openPathto honor user-defined system defaults on Linux. #46789 (Also in 33, 34, 36) - Fixed a possible crash when using
navigator.bluetooth.requestDeviceand theselect-bluetooth-deviceevent. #46784 (Also in 34, 36) - Fixed a potential crash when closing a window with child windows. #46774 (Also in 34, 36)
- Fixed build error with
enable_electron_extensions=false. #46840 (Also in 34, 36) - Fixed crash when renderer process crashes while webview is reloading. #46769 (Also in 34, 36)
- Fixed documentation to mark
Window.autoHideMenuBaras supported on Linux and Windows. #46829 (Also in 34, 36) - Fixed the
visibleOnAllWorkspacesproperty on Linux. #46861 - Fixed the border style of windows with vibrancy on macOS. #46772 (Also in 36)
- Fixed the issue where maximizing and restoring the window does not respect the corner radius settings, and the corner radius is incorrect in fullscreen mode. #46847 (Also in 36)
v35.2.1: electron v35.2.1
Release Notes for v35.2.1
Fixes
- Fixed Minimize menu button to follow set window minimizability on Windows. #46715 (Also in 34, 36)
- Fixed a potential crash in
utilityProcess.postMessagewhen calling with an invalid transferable. #46666 (Also in 36) - Fixed case where file dialog filters would get mixed up, if a
*filter was included. #46721 (Also in 34, 36) - Fixed crash on reconversion with google IME and editcontext on macOS. #46700 (Also in 34, 36)
- Microtasks are no longer (incorrectly) run by serializing values, including when sending IPC. #46684 (Also in 34, 36)
v35.2.0: electron v35.2.0
Release Notes for v35.2.0
Features
- Added
nativeTheme.shouldUseDarkColorsForSystemIntegratedUIto distinguish system and app theme. #46599 (Also in 36)
Fixes
- Fixed ElectronAccessibilityUI bug. #46591 (Also in 33, 34, 36)
- Fixed a possible BrowserWindow crash caused by closing a parent window with focus or blur events. #46581 (Also in 34, 36)
- Fixed an error when calling
window.emit('close')after toggling fullscreen mode. #46620 (Also in 36) - Fixed an inverted conditional in the above PR that caused broken window borders in some circumstances on Wayland. #46644 (Also in 33, 34, 36)
- Fixed an issue where badly formatted switches could cause crashes in
app.commandLinefunctions. #46631 (Also in 36) - Fixed an issue with
--inspect-brkfailing in packaged apps. #46583 (Also in 36) - Fixed an issue with the
assertNode.js module in the renderer process. #46632 (Also in 36) - Fixed several paint and white flash issues on macOS. #46628 (Also in 36)
Other Changes
- Fixed an issue where printing from the renderer process crashes the main process when no printers are installed in the system or there's not a default printer. #46616 (Also in 34, 36)
- Updated Chromium to 134.0.6998.205. #46655
v35.1.5: electron v35.1.5
Release Notes for v35.1.5
Fixes
Unknown
v35.1.4: electron v35.1.4
Release Notes for v35.1.4
Fixes
- Fix: don't copy 'package.json's out of ASAR file. #46478 (Also in 36)
- Fixed a bug that could cause some maximized windows on Linux to report an incorrect window state. #46464 (Also in 34, 36)
- Fixed a possible crash using Node.js on some arm32 devices. #46461 (Also in 36)
- Fixed crash on application exit with pending
app.getGPUInfopromise. #46470 (Also in 34, 36)
v35.1.3: electron v35.1.3
Release Notes for v35.1.3
Fixes
- Fixed a crash that could occur when dragging and dropping files into the browser. #46311 (Also in 36)
- Fixed an issue where
context-menuevent weren't emitted as expected on Windows in draggable regions. #46334 (Also in 34, 36) - Fixed an issue where calling
UtilityProcess.forkprior to the app ready event would cause a crash. #46403 (Also in 34, 36) - Fixed flickering and ghosting artifacts in transparent windows on macOS. #46392 (Also in 36)
- Fixed memory leak in AutofillPopupView. #46413 (Also in 34, 36)
- Fixed the issue where rounded corners disappear momentarily when closing on Windows 11. #46408 (Also in 36)
- When a menu item on macOS is disabled (
enabled = false), it is now greyed out. #46341 (Also in 34, 36)
Other Changes
- Updated Chromium to 134.0.6998.179. #46313
v35.1.2: electron v35.1.2
Release Notes for v35.1.2
Fixes
- Fixed an issue where
navigationHistory.restore()failed to restore theuserAgentif it was overridden. #46300 (Also in 34, 36)
Other Changes
v35.1.1: electron v35.1.1
Release Notes for v35.1.1
Fixes
v35.1.0: electron v35.1.0
Release Notes for v35.1.0
Features
Fixes
- Fixed NODE_OPTIONS parsing for child processes on macOS. #46244 (Also in 34, 36)
- Fixed a crash seen on Linux when calling
webContents.print(). #46147 (Also in 36) - Fixed an issue where
system-context-menuincorrectly fired for all regions in frameless windows. #46178 (Also in 33, 34, 36) - Fixed an issue where
webContents.printToPDF()didn't work as expected with cross-process subframes. #46257 (Also in 34, 36) - Fixed an issue where the resizing border didn't work as expected on Wayland windows. #46224 (Also in 33, 34, 36)
- Fixed an issue with token formatting for tokens received after calling
pushNotifications.registerForAPNSNotifications(). #46148 (Also in 34, 36) - Fixed crash on Linux when PipeWire screenshare source selection is cancelled. #46234 (Also in 36)
- Fixed crash with out-of-bounds string read when parsing NODE_OPTIONS. #46248 (Also in 34, 36)
Other Changes
- Improved performance of desktopCapturer.getSources when not requesting thumbnails on macOS. #46249 (Also in 34, 36)
- Updated Chromium to 134.0.6998.165. #46196
v35.0.3: electron v35.0.3
Release Notes for v35.0.3
Fixes
- Fixed an issue where snapped windows in Windows may sometimes be improperly restored. #46040 (Also in 33, 34, 36)
- Fixed incorrect titlebar in file save dialogs. #46074 (Also in 33, 34, 36)
Documentation
- Documentation changes: #46102
v35.0.2: electron v35.0.2
Release Notes for v35.0.2
Fixes
- Fixed an issue where Web Workers crashed on unhandled rejections. #46020 (Also in 34, 36)
- Fixed an issue where packages could be mistakenly not found in asar. #46022 (Also in 36)
- Fixed title changes to not occur while navigating within a page. #46035 (Also in 34, 36)
Other Changes
- Fixed an issue where Electron could fail to load on some older Linux distributions. #45983 (Also in 34, 36)
- Updated Chromium to 134.0.6998.88. #45972
v35.0.1: electron v35.0.1
Release Notes for v35.0.1
Fixes
- Fixed an issue where Node.js OOM errors terminate the process directly without raising an OOM exception. #45911 (Also in 36)
- Fixed an issue where
setContentProtection(true)was reverted when a given window was hidden. #45889 (Also in 34) - Fixed invalid memory access in pdf viewer which lead to random crashes. #45879 (Also in 34)
- Improved webContents loading time when resolving fonts for uncommon scripts. #45918 (Also in 34, 36)
Other Changes
v35.0.0: electron v35.0.0
Release Notes for v35.0.0
Stack Upgrades
- Chromium
134.0.6998.44 - Node
22.14.0 - V8
13.4
Breaking Changes
- Added excludeUrls to webRequest filter and deprecated the use of empty arrays in urls property. #45678
- Added
fromVersionIDonServiceWorkersto get an instance ofServiceWorkerMain. #45341 - Deprecated
getPreloadsandsetPreloadsonSession. #45329 - Fixed file chooser dialogs for flaptak applications. #44426 (Also in 34)
- Moved 'console-message' arguments into event object. #43617
- The
systemPreferences.isAeroGlassEnabled()API has been deprecated and will be removed without replacement. #45554
Features
Additions
- Added APIs to manage shared dictionaries for compression efficiency using Brotli or ZStandard. The new APIs are
session.getSharedDictionaryUsageInfo(),session.getSharedDictionaryInfo(options),session.clearSharedDictionaryCache(), andsession.clearSharedDictionaryCacheForIsolationKey(options). #44750 (Also in 33, 34) - Added
NSPrefersDisplaySafeAreaCompatibilityMode=falseto Info.plist to remove "Scale to fit below built-in camera." from app options. #45357 (Also in 33, 34) - Added
ServiceWorkerMainclass to interact with service workers in the main process. #45341- Added
running-status-changedevent onServiceWorkersto indicate when a service worker's running status has changed. - Added
startWorkerForScopeonServiceWorkersto start a worker that may have been previously stopped.
- Added
- Added
WebFrameMain.collectJavaScriptCallStack()for accessing the JavaScript call stack of unresponsive renderers. #44204 (Also in 33, 34) - Added
contextBridge.executeInMainWorldto safely execute code across world boundaries. #45330 - Added
frameto 'console-message' event. #43617 - Added
query-session-endevent and improvedsession-endevents on Windows. #44598 - Added
view.getVisible(). #45409 (Also in 34) - Added
webContents.navigationHistory.restore(index, entries)API that allows restoration of navigation history. #45583 (Also in 34) - Added optional animation parameter to BrowserWindow.setVibrancy. #35987
- Added permission support for
document.executeCommand("paste"). #45471 (Also in 33, 34) - Added support for
roundedCornersBrowserWindow constructor option on Windows. #45740 (Also in 34) - Added support for service worker preload scripts. [#
⚠️ No Changeset found
Latest commit: f0bfe205be9e753733e4fa295995a20f6c6ac0c6
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR