GitHub Advisoryadvisory · npm
GHSA-mwmh-mq4g-g6gr Electron: Registry key path injection in app.setAsDefaultProtocolClient on Windows
MEDIUM
Official page ↗
- Aliases
- CVE-2026-34773
- Ecosystem
- npm
- Packages
- electron
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
- Weaknesses
- CWE-20, CWE-74
- Reviewed
- 2026-04-03
Affected packages
• npm electron: < 38.8.6 → fixed in 38.8.6
• npm electron: >= 39.0.0-alpha.1, < 39.8.1 → fixed in 39.8.1
• npm electron: >= 40.0.0-alpha.1, < 40.8.1 → fixed in 40.8.1
• npm electron: >= 41.0.0-alpha.1, < 41.0.0 → fixed in 41.0.0
Description
Impact
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.
Workarounds
Validate the protocol name matches `/^[a-zA-Z][a-zA-Z0-9+.-]*$/` before passing it to `app.setAsDefaultProtocolClient()`.
Fixed Versions
• `41.0.0`
• `40.8.1`
• `39.8.1`
• `38.8.6`
For more information
If there are any questions or comments about this advisory, please email [email protected]
Related
Alias · CVE (1)
- CVE-2026-34773 Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. vulnerability