| summary |
Electron: Incorrect origin passed to permission request handler for iframe requests
### 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 [security@electronjs.org](mailto:security@electronjs.org) |