chore(deps): update dependency electron to v35 [security] #48
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
This PR contains the following updates:
6.0.0->35.7.5GitHub 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 allnew-windowevents where theurloroptionsis not something you expect.Fixed Versions
9.0.0-beta.218.2.47.2.4For more information
If you have any questions or comments about this advisory:
CVE-2020-4077
Impact
Apps using both
contextIsolationandcontextBridgeare 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.4For more information
If you have any questions or comments about this advisory:
CVE-2020-4076
Impact
Apps using
contextIsolationare 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.4Non-Impacted Versions
9.0.0-beta.*For more information
If you have any questions or comments about this advisory:
CVE-2020-15096
Impact
Apps using
contextIsolationare 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.11For more information
If you have any questions or comments about this advisory:
CVE-2020-26272
Impact
IPC messages sent from the main process to a subframe in the renderer process, through
webContents.sendToFrame,event.replyor when using theremotemodule, 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:
remotewebContents.sendToFrameevent.replyin an IPC message handlerPatches
This has been fixed in the following versions:
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:
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
createThumbnailFromPathAPI, then you can simply disable the functionality. In the main process, before the 'ready' event: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-deviceevent 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.6Workarounds
Adding this code to your app can workaround the issue.
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
nodeIntegrationInSubFramesenabled which in turn allows effective access toipcRenderer.Please note the misleadingly named
nodeIntegrationInSubFramesoption does not implicitly grant Node.js access rather it depends on the existingsandboxsetting. If your application is sandboxed thennodeIntegrationInSubFramesjust gives access to the sandboxed renderer APIs (which includesipcRenderer).If your application then additionally exposes IPC messages without IPC
senderFramevalidation that perform privileged actions or return confidential data this access toipcRenderercan 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.5Workarounds
Ensure that all IPC message handlers appropriately validate
senderFrameas 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.0Workarounds
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:
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: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
contextIsolationandcontextBridgeare 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:
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.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.6For 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 --helpSpecifically this issue can only be exploited if the following conditions are met:
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.19For 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
embeddedAsarIntegrityValidationandonlyLoadAppFromAsarfuses 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
resourcesfolder 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.24For more information
If you have any questions or comments about this advisory, email us at [email protected]
CVE-2024-46993
Impact
The
nativeImage.createFromPath()andnativeImage.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.3For 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
embeddedAsarIntegrityValidationandonlyLoadAppFromAsarfuses 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
resourcesfolder 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.5For 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.5Compare Source
Release Notes for v35.7.5
Fixes
shell.openPathwas not non-blocking as expected. #48079 (Also in 36, 37, 38)v35.7.4: electron v35.7.4Compare Source
Release Notes for v35.7.4
v35.7.2: electron v35.7.2Compare Source
Release Notes for v35.7.2
Fixes
webContents.print({ silent: true })would fail. #47645 (Also in 36, 37)v35.7.0: electron v35.7.0Compare Source
Release Notes for v35.7.0
Other Changes
v35.6.0: electron v35.6.0Compare Source
Release Notes for v35.6.0
Features
--no-experimental-global-navigatorflag. #47416 (Also in 36, 37)Fixes
session.clearDatain some circumstances. #47410 (Also in 36, 37)electronfor the first time from an ESM module loaded by a CJS module in a packaged app. #47344 (Also in 36, 37)Fetch.continueResponsevia debugger withWebContentsViewcould cause a crash. #47443 (Also in 36, 37)webContents.print()where the callback would not be called. #47399 (Also in 36, 37)Other Changes
4206375. #47369v35.5.1: electron v35.5.1Compare Source
Release Notes for v35.5.1
Fixes
addChildView()crashes when adding a closed WebContentsView. #47339autoUpdateron macOS when zip extraction failed. #47299 (Also in 34, 36, 37)Other Changes
v35.5.0: electron v35.5.0Compare Source
Release Notes for v35.5.0
Features
screen.dipToScreenPoint(point)andscreen.screenToDipPoint(point)on Linux X11. #47124 (Also in 36, 37)--experimental-network-inspection. #47029 (Also in 36, 37)Fixes
shell.readShortcutLink. #47226 (Also in 36)backgroundMaterialfeature did not work in a frameless window on initial window creation. #47236 (Also in 36)treatPackageAsDirectoryis enabled on macOS. #47110 (Also in 36, 37)Other Changes
4033643. #47069v35.4.0: electron v35.4.0Compare Source
Release Notes for v35.4.0
Features
system-context-menuon Linux. #46977 (Also in 36)Fixes
win.setContentProtected()on Windows. #47034 (Also in 36, 37)Other Changes
v35.3.0: electron v35.3.0Compare Source
Release Notes for v35.3.0
Fixes
Other Changes
--js-flags=--perf-profon macOS. #46877 (Also in 36)v35.2.2: electron v35.2.2Compare Source
Release Notes for v35.2.2
Fixes
electron.shell.openExternalandelectron.shell.openPathto honor user-defined system defaults on Linux. #46789 (Also in 33, 34, 36)navigator.bluetooth.requestDeviceand theselect-bluetooth-deviceevent. #46784 (Also in 34, 36)enable_electron_extensions=false. #46840 (Also in 34, 36)Window.autoHideMenuBaras supported on Linux and Windows. #46829 (Also in 34, 36)visibleOnAllWorkspacesproperty on Linux. #46861v35.2.1: electron v35.2.1Compare Source
Release Notes for v35.2.1
Fixes
utilityProcess.postMessagewhen calling with an invalid transferable. #46666 (Also in 36)*filter was included. #46721 (Also in 34, 36)v35.2.0: electron v35.2.0Compare Source
Release Notes for v35.2.0
Features
nativeTheme.shouldUseDarkColorsForSystemIntegratedUIto distinguish system and app theme. #46599 (Also in 36)Fixes
window.emit('close')after toggling fullscreen mode. #46620 (Also in 36)app.commandLinefunctions. #46631 (Also in 36)--inspect-brkfailing in packaged apps. #46583 (Also in 36)assertNode.js module in the renderer process. #46632 (Also in 36)Other Changes
v35.1.5: electron v35.1.5Compare Source
Release Notes for v35.1.5
Fixes
parentPort. #46495 (Also in 34, 36)Unknown
v35.1.4: electron v35.1.4Compare Source
Release Notes for v35.1.4
Fixes
app.getGPUInfopromise. #46470 (Also in 34, 36)v35.1.3: electron v35.1.3Compare Source
Release Notes for v35.1.3
Fixes
context-menuevent weren't emitted as expected on Windows in draggable regions. #46334 (Also in 34, 36)UtilityProcess.forkprior to the app ready event would cause a crash. #46403 (Also in 34, 36)enabled = false), it is now greyed out. #46341 (Also in 34, 36)Other Changes
v35.1.2: electron v35.1.2Compare Source
Release Notes for v35.1.2
Fixes
navigationHistory.restore()failed to restore theuserAgentif it was overridden. #46300 (Also in 34, 36)Other Changes
v35.1.1: electron v35.1.1Compare Source
Release Notes for v35.1.1
Fixes
v35.1.0: electron v35.1.0Compare Source
Release Notes for v35.1.0
Features
ffmpeg.dllto delay load configuration. #46172 (Also in 34, 36)Fixes
webContents.print(). #46147 (Also in 36)system-context-menuincorrectly fired for all regions in frameless windows. #46178 (Also in 33, 34, 36)webContents.printToPDF()didn't work as expected with cross-process subframes. #46257 (Also in 34, 36)pushNotifications.registerForAPNSNotifications(). #46148 (Also in 34, 36)Other Changes
v35.0.3: electron v35.0.3Compare Source
Release Notes for v35.0.3
Fixes
Documentation
v35.0.2: electron v35.0.2Compare Source
Release Notes for v35.0.2
Fixes
Other Changes
v35.0.1: electron v35.0.1Compare Source
Release Notes for v35.0.1
Fixes
setContentProtection(true)was reverted when a given window was hidden. #45889 (Also in 34)Other Changes
4010597. #459384010597. #45943v35.0.0: electron v35.0.0Compare Source
Release Notes for v35.0.0
Stack Upgrades
134.0.6998.4422.14.013.4Breaking Changes
fromVersionIDonServiceWorkersto get an instance ofServiceWorkerMain. #45341getPreloadsandsetPreloadsonSession. #45329systemPreferences.isAeroGlassEnabled()API has been deprecated and will be removed without replacement. #45554Features
Additions
session.getSharedDictionaryUsageInfo(),session.getSharedDictionaryInfo(options),session.clearSharedDictionaryCache(), andsession.clearSharedDictionaryCacheForIsolationKey(options). #44750 (Also in 33, 34)NSPrefersDisplaySafeAreaCompatibilityMode=falseto Info.plist to remove "Scale to fit below built-in camera." from app options. #45357 (Also in 33, 34)ServiceWorkerMainclass to interact with service workers in the main process. #45341running-status-changedevent onServiceWorkersto indicate when a service worker's running status has changed.startWorkerForScopeonServiceWorkersto start a worker that may have been previously stopped.WebFrameMain.collectJavaScriptCallStack()for accessing the JavaScript call stack of unresponsive renderers. #44204 (Also in 33, 34)contextBridge.executeInMainWorldto safely execute code across world boundaries. #45330frameto 'console-message' event. #43617query-session-endevent and improvedsession-endevents on Windows. #44598view.getVisible(). #45409 (Also in 34)webContents.navigationHistory.restore(index, entries)API that allows restoration of navigation history. #45583 (Also in 34)document.executeCommand("paste"). #45471 (Also in 33, 34)roundedCornersBrowserWindow constructor option on Windows. #45740 (Also in 34)