Description
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0, on Windows, app.setAsDefaultProtocolClient(protocol) did not validate the protocol name before writing to the registry. Apps that pass untrusted input as the protocol name may allow an attacker to write to arbitrary subkeys under HKCU\Software\Classes\, potentially hijacking existing protocol handlers. Apps are only affected if they call app.setAsDefaultProtocolClient() with a protocol name derived from external or untrusted input. Apps that use a hardcoded protocol name are not affected. This issue has been patched in versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0.
Published: 2026-04-03
Score: 4.7 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Registry injection enabling protocol hijacking
Action: Patch urgently
AI Analysis

Impact

Electron applications use app.setAsDefaultProtocolClient to register custom protocols. In versions before 38.8.6, 39.8.1, 40.8.1, and 41.0.0 on Windows, the function fails to validate the protocol argument, allowing a user‑supplied string that can be interpreted as a registry path. This flaw combines input validation errors (CWE‑20), path traversal (CWE‑74), and an unchecked heap allocation (CWE‑791). An attacker who can influence the protocol name sent to the call can write to arbitrary subkeys under HKCU\Software\Classes, potentially hijacking existing protocol handlers and redirecting traffic to malicious executables.

Affected Systems

All Electron-based desktop applications running on Windows that invoke app.setAsDefaultProtocolClient with a protocol name derived from external or otherwise untrusted input are affected. The issue is present only in Electron versions prior to 38.8.6, 39.8.1, 40.8.1, and 41.0.0; applications that use hard‑coded protocol names are not vulnerable. The vulnerability is specific to the Windows platform where protocol registration occurs via the registry.

Risk and Exploitability

The CVSS score of 4.7 reflects moderate severity, and an EPSS probability of less than 1% indicates low likelihood of exploitation in the wild. The vulnerability is not listed in the CISA KEV catalog, further suggesting that active exploitation is currently uncommon. Exploitation requires an attacker to supply untrusted data to an Electron app’s setAsDefaultProtocolClient call, so the attack vector is local or user‑initiated. Although the flaw does not provide arbitrary code execution, it enables protocol hijacking that could lead to phishing or malware delivery when combined with social engineering or other attacks.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Electron to version 38.8.6 or later (including 39.8.1, 40.8.1, 41.0.0 and newer)
  • Ensure that calls to app.setAsDefaultProtocolClient use hard‑coded protocol names or validate and sanitize any externally sourced input before passing it
  • Review and audit Electron‑based applications to confirm they do not use untrusted data for protocol registration
  • Monitor Windows registry for unexpected changes to HKCU\Software\Classes that may indicate protocol hijacking activity

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

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-mwmh-mq4g-g6gr Electron: Registry key path injection in app.setAsDefaultProtocolClient on Windows
History

Wed, 22 Apr 2026 18: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:*:*
cpe:2.3:a:electronjs:electron:41.0.0:beta8:*:*:*: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-791
Vendors & Products Electron
Electron electron
References
Metrics threat_severity

None

threat_severity

Moderate


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

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, '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.1, 40.8.1, and 41.0.0, on Windows, app.setAsDefaultProtocolClient(protocol) did not validate the protocol name before writing to the registry. Apps that pass untrusted input as the protocol name may allow an attacker to write to arbitrary subkeys under HKCU\Software\Classes\, potentially hijacking existing protocol handlers. Apps are only affected if they call app.setAsDefaultProtocolClient() with a protocol name derived from external or untrusted input. Apps that use a hardcoded protocol name are not affected. This issue has been patched in versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0.
Title Electron: Registry key path injection in app.setAsDefaultProtocolClient on Windows
Weaknesses CWE-20
CWE-74
References
Metrics cvssV3_1

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


Subscriptions

Electron Electron
Electronjs Electron
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-04-06T16:03:54.878Z

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

Link: CVE-2026-34773

cve-icon Vulnrichment

Updated: 2026-04-06T16:03:51.631Z

cve-icon NVD

Status : Analyzed

Published: 2026-04-04T00:16:18.287

Modified: 2026-04-22T18:01:40.140

Link: CVE-2026-34773

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-04-03T23:50:42Z

Links: CVE-2026-34773 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses