Update dependency electron to v35 [SECURITY] #210
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:
13.0.1
->35.7.5
GitHub Vulnerability Alerts
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
createThumbnailFromPath
API, 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-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.6
16.0.6
15.3.5
14.2.4
13.6.6
Workarounds
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-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.6
17.2.0
16.2.0
15.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:
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-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:
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.13
25.5.0
24.7.1
23.3.13
22.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
andonlyLoadAppFromAsar
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.7
26.2.1
25.8.1
24.8.3
22.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()
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.2
v29.3.3
v30.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
andonlyLoadAppFromAsar
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.6
37.3.1
36.8.1
35.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.5Compare Source
Release Notes for v35.7.5
Fixes
shell.openPath
was 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-navigator
flag. #47416 (Also in 36, 37)Fixes
session.clearData
in some circumstances. #47410 (Also in 36, 37)electron
for the first time from an ESM module loaded by a CJS module in a packaged app. #47344 (Also in 36, 37)Fetch.continueResponse
via debugger withWebContentsView
could 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. #47339autoUpdater
on 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)backgroundMaterial
feature did not work in a frameless window on initial window creation. #47236 (Also in 36)treatPackageAsDirectory
is 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-menu
on 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-prof
on macOS. #46877 (Also in 36)v35.2.2
: electron v35.2.2Compare Source
Release Notes for v35.2.2
Fixes
electron.shell.openExternal
andelectron.shell.openPath
to honor user-defined system defaults on Linux. #46789 (Also in 33, 34, 36)navigator.bluetooth.requestDevice
and theselect-bluetooth-device
event. #46784 (Also in 34, 36)enable_electron_extensions=false
. #46840 (Also in 34, 36)Window.autoHideMenuBar
as supported on Linux and Windows. #46829 (Also in 34, 36)visibleOnAllWorkspaces
property on Linux. #46861v35.2.1
: electron v35.2.1Compare Source
Release Notes for v35.2.1
Fixes
utilityProcess.postMessage
when 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.shouldUseDarkColorsForSystemIntegratedUI
to distinguish system and app theme. #46599 (Also in 36)Fixes
window.emit('close')
after toggling fullscreen mode. #46620 (Also in 36)app.commandLine
functions. #46631 (Also in 36)--inspect-brk
failing in packaged apps. #46583 (Also in 36)assert
Node.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.getGPUInfo
promise. #46470 (Also in 34, 36)v35.1.3
: electron v35.1.3Compare Source
Release Notes for v35.1.3
Fixes
context-menu
event weren't emitted as expected on Windows in draggable regions. #46334 (Also in 34, 36)UtilityProcess.fork
prior 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 theuserAgent
if 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.dll
to delay load configuration. #46172 (Also in 34, 36)Fixes
webContents.print()
. #46147 (Also in 36)system-context-menu
incorrectly 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.44
22.14.0
13.4
Breaking Changes
fromVersionID
onServiceWorkers
to get an instance ofServiceWorkerMain
. #45341getPreloads
andsetPreloads
onSession
. #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
=false
to Info.plist to remove "Scale to fit below built-in camera." from app options. #45357 (Also in 33, 34)ServiceWorkerMain
class to interact with service workers in the main process. #45341running-status-changed
event onServiceWorkers
to indicate when a service worker's running status has changed.startWorkerForScope
onServiceWorkers
to 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.executeInMainWorld
to safely execute code across world boundaries. #45330frame
to 'console-message' event. #43617query-session-end
event and improvedsession-end
events 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)roundedCorners
BrowserWindow constructor option on Windows. #45740 (Also in 34)Improvements
registerPreloadScript
,unregisterPreloadScript
,getPreloadScripts
onSession
.#45329Removed/Deprecated
Fixes
webContents.print()
after switch to OOP printing on macOS and Linux. #45285window.print()
on macOS/Linux. #45259webFrame.getZoomLevel
andwebFrame.getZoomFactor
APIs. #45557Also in earlier versions...
chrome.i18n
extension API being unavailable in service workers. #45031 (Also in 31, 32, 33, 34)trace-startup
not working on macOS. #44257 (Also in 32, 33, 34)v8.setHeapSnapshotNearHeapLimit
api in main and utility process, along with support for--diagnostic-dir
Node.js cli flag to specify the directory to save the heap snapshots. #45632 (Also in 33, 34)shell.readShortcutLink
on Windows. #44784 (Also in 33, 34)shell.readShortcutLink
caused byPKEY_AppUserModel_ToastActivatorCLSID
sometimes being represented by a string uuid. #45348 (Also in 33, 34)chrome.tabs.update()
. #45302 (Also in 33, 34)getUserMedia
with an invalidchromeMediaSourceId
. #45755 (Also in 34)