GitHub Advisoryadvisory · npm
GHSA-r5p7-gp4j-qhrx Electron: Incorrect origin passed to permission request handler for iframe requests
MEDIUM
Official page ↗
- Aliases
- CVE-2026-34777
- Ecosystem
- npm
- Packages
- electron
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
- Weaknesses
- CWE-346
- 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
When an iframe requests `fullscreen`, `pointerLock`, `keyboardLock`, `openExternal`, or `media` permissions, the origin passed to `session.setPermissionRequestHandler()` was the top-level page's origin rather than the requesting iframe's origin. Apps that grant permissions based on the origin parameter or `webContents.getURL()` may inadvertently grant permissions to embedded third-party content.
The correct requesting URL remains available via `details.requestingUrl`. Apps that already check `details.requestingUrl` are not affected.
Workarounds
In your `setPermissionRequestHandler`, inspect `details.requestingUrl` rather than the origin parameter or `webContents.getURL()` when deciding whether to grant `fullscreen`, `pointerLock`, `keyboardLock`, `openExternal`, or `media` permissions.
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-34777 Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. vulnerability
Weakness · CWE (1)
- CWE-346 Origin Validation Error weakness