Electron: HID and USB permission checks can be attributed to the wrong origin
🔗 CVE IDs covered (1)
📋 Description
Impact
For hid and usb permission checks made from an iframe, session.setPermissionCheckHandler was given the top-level frame's origin and details instead of the requesting frame's. Apps that allow these permissions based on origin could grant an embedded frame access intended for the top-level page.
You're only affected if you use setPermissionCheckHandler with origin-based logic for hid or usb and embed cross-origin iframes with allow="hid" or allow="usb". Apps that don't delegate those features to untrusted iframes are not affected.
Workarounds
Don't add allow="hid" / allow="usb" to untrusted iframes, or make the decision in your select-hid-device / select-usb-device handler using details.frame.
Fixed Versions
45.0.0-alpha.544.3.043.7.042.11.3
For more information
If you have any questions or comments about this advisory, email us at [email protected]
🎯 Affected products4
- npm/electron:>= 45.0.0-alpha.1, < 45.0.0-alpha.5
- npm/electron:>= 44.0.0-alpha.1, < 44.3.0
- npm/electron:>= 43.0.0-alpha.1, < 43.7.0
- npm/electron:< 42.11.3
🔗 References (16)
- https://github.com/electron/electron/security/advisories/GHSA-fw47-9c62-h3vw
- https://github.com/electron/electron/pull/53656
- https://github.com/electron/electron/pull/53679
- https://github.com/electron/electron/pull/53688
- https://github.com/electron/electron/pull/53689
- https://github.com/electron/electron/pull/53736
- https://github.com/electron/electron/commit/22de0a3a06cfd3174fc6c59c3810ab5e1c91bf1a
- https://github.com/electron/electron/commit/36042b2e1b1c60c67b05ba0e95d1a34f608b9742
- https://github.com/electron/electron/commit/56cc43eb677d46b86b0d3f49b5fba71404ab1ff0
- https://github.com/electron/electron/commit/922073f8601479e93071f56f0745041291b206fd
- https://github.com/electron/electron/commit/c965cee73284c4b230a81d51a7db6115e55da8c0
- https://github.com/electron/electron/releases/tag/v42.11.3
- https://github.com/electron/electron/releases/tag/v43.7.0
- https://github.com/electron/electron/releases/tag/v44.3.0
- https://github.com/electron/electron/releases/tag/v45.0.0-alpha.5
- https://github.com/advisories/GHSA-fw47-9c62-h3vw