CVE-2026-34771: Electron: Use-after-free in WebContents fullscreen, pointer-lock, and keyboard-lock permission callbacks
Impact Apps that register an asynchronous session.setPermissionRequestHandler() may be vulnerable to a use-after-free when handling fullscreen, pointer-lock, or keyboard-lock permission requests. 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.
Apps that do not set a permission request handler, or whose handler responds synchronously, are not affected.
Workarounds Respond to permission requests synchronously, or deny fullscreen, pointer-lock, and keyboard-lock requests if an asynchronous flow is required.
Fixed Versions 41.0.0-beta.8 40.7.0 39.8.0 38.8.6
For more information If there are any questions or comments about this advisory, please email security@electronjs.org
Other sources
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8, apps that register an asynchronous session.setPermissionRequestHandler() may be vulnerable to a use-after-free when handling fullscreen, pointer-lock, or keyboard-lock permission requests. 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. Apps that do not set a permission request handler, or whose handler responds synchronously, are not affected. This issue has been patched in versions 38.8.6, 39.8.0, 40.7.0, and 41.0.0-beta.8.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 41.0.0-beta.8 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 40.7.0 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 39.8.0 - Upgrade
Upgrade
npm/electronto a version that resolves this vulnerability.Fixed in 38.8.6 - Upgrade
Upgrade
Electronto a version that resolves this vulnerability.Fixed in 38.8.6 - Upgrade
Upgrade
Electronto a version that resolves this vulnerability.Fixed in 39.8.0 - Upgrade
Upgrade
Electronto a version that resolves this vulnerability.Fixed in 40.7.0 - Upgrade
Upgrade
Electronto a version that resolves this vulnerability.Fixed in 41.0.0-beta.8 - Configuration
Update the app’s permission handling so permission requests are handled synchronously; alternatively, if an asynchronous flow is required, deny fullscreen, pointer-lock, and keyboard-lock permission requests to avoid the use-after-free in the stored callback.
Electron (session.setPermissionRequestHandler) session.setPermissionRequestHandler callback handling = synchronous (or deny fullscreen/pointer-lock/keyboard-lock when using asynchronous flow)