Description
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.
Published: 2026-04-03
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory corruption and crash
Action: Patch promptly
AI Analysis

Impact

A use‑after‑free issue exists in Electron’s WebContents permission callbacks for fullscreen, pointer‑lock, and keyboard‑lock. When an application registers an asynchronous session.setPermissionRequestHandler(), the stored callback may be invoked after the requesting page navigates or the window closes, leading the framework to dereference freed memory. This can cause a crash or memory corruption. The vulnerability is tied to CWE‑364 (Read After Free) and CWE‑416 (Use After Free).

Affected Systems

Electron framework releases older than 38.8.6, 39.8.0, 40.7.0, and 41.0.0‑beta.8 are affected when applications register an asynchronous permission handler for the three permissions. Applications that do not set such a handler or that respond synchronously are not impacted. Any desktop application built with the electron:electron framework that falls within these version ranges and uses async handlers is potentially vulnerable.

Risk and Exploitability

The CVSS base score of 7.5 indicates high severity, yet the EPSS score is below 1 %, suggesting a low likelihood of exploitation in the wild. The vulnerability is not listed in the CISA KEV catalog. The likely attack vector requires an application to process permission requests asynchronously; by forcing a navigation or closing a window while a permission request is pending, the stored callback can be invoked on freed memory, leading to crash or corruption. No public exploits have been reported, and the impact is confined to memory corruption or application crash rather than remote code execution.

Generated by OpenCVE AI on April 7, 2026 at 02:13 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Electron to version 38.8.6, 39.8.0, 40.7.0, or 41.0.0‑beta.8 or later to receive the patch.
  • Confirm that applications do not register asynchronous permission handlers for fullscreen, pointer‑lock, or keyboard‑lock requests; use synchronous handlers or remove the handler if updating immediately is not feasible.
  • If the application must remain on an older Electron release, modify the permission request logic to prevent window navigations or closures while a callback is pending, or drop the callback before navigation or exit to avoid the use‑after‑free scenario.

Generated by OpenCVE AI on April 7, 2026 at 02:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-8337-3p73-46f4 Electron: Use-after-free in WebContents fullscreen, pointer-lock, and keyboard-lock permission callbacks
History

Wed, 22 Apr 2026 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Electronjs
Electronjs electron
CPEs cpe:2.3:a:electronjs:electron:*:*:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha1:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha2:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha3:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha4:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha5:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:alpha6:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta1:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta2:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta3:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta4:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta5:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta6:*:*:*:node.js:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta7:*:*:*:node.js:*:*
Vendors & Products Electronjs
Electronjs electron

Tue, 07 Apr 2026 00:00:00 +0000

Type Values Removed Values Added
First Time appeared Electron
Electron electron
Weaknesses CWE-364
Vendors & Products Electron
Electron electron
References
Metrics threat_severity

None

threat_severity

Important


Mon, 06 Apr 2026 16:45:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Sat, 04 Apr 2026 00:00:00 +0000

Type Values Removed Values Added
Description 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.
Title Electron: Use-after-free in WebContents fullscreen, pointer-lock, and keyboard-lock permission callbacks
Weaknesses CWE-416
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H'}


Subscriptions

Electron Electron
Electronjs Electron
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-08T03:55:37.519Z

Reserved: 2026-03-30T19:54:55.555Z

Link: CVE-2026-34771

cve-icon Vulnrichment

Updated: 2026-04-06T16:04:15.675Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-04T00:16:17.980

Modified: 2026-04-22T15:10:22.620

Link: CVE-2026-34771

cve-icon Redhat

Severity : Important

Publid Date: 2026-04-03T23:47:23Z

Links: CVE-2026-34771 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-04-07T07:16:27Z

Weaknesses