Electron: HID and USB permission checks can be attributed to the wrong origin
What fixes it
- 45.0.0-alpha.5electron, npmGitHub
npm install electron@45.0.0-alpha.5 - 44.3.0electron, npmGitHub
npm install electron@44.3.0 - 43.7.0electron, npmGitHub
npm install electron@43.7.0 - 42.11.3electron, npmGitHub
npm install electron@42.11.3
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
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 [security@electronjs.org](mailto:security@electronjs.org)
Text from GitHub Advisory Database
Affected versions 12
- electron, npm>= 45.0.0-alpha.1, < 45.0.0-alpha.5GitHub
- electron, npm>= 44.0.0-alpha.1, < 44.3.0GitHub
- electron, npm>= 43.0.0-alpha.1, < 43.7.0GitHub
- electron, npm< 42.11.3GitHub
- electronaffected: < 42.11.3CVE List
- electronaffected: >= 43.0.0-alpha.1, < 43.7.0CVE List
- electronaffected: >= 44.0.0-alpha.1, < 44.3.0CVE List
- electronaffected: >= 45.0.0-alpha.1, < 45.0.0-alpha.5CVE List
- electron, npmfrom 45.0.0-alpha.1, fixed in 45.0.0-alpha.5OSV
- electron, npmfrom 44.0.0-alpha.1, fixed in 44.3.0OSV
- electron, npmfrom 43.0.0-alpha.1, fixed in 43.7.0OSV
- electron, npmfrom first release, fixed in 42.11.3OSV
References 16
- github.com/electron/electron/commit/22de0a3a06cfd3174fc6c59c3810ab5e1c91bf1aFixvia CVE List
- github.com/electron/electron/commit/36042b2e1b1c60c67b05ba0e95d1a34f608b9742Fixvia CVE List
- github.com/electron/electron/commit/56cc43eb677d46b86b0d3f49b5fba71404ab1ff0Fixvia CVE List
- github.com/electron/electron/commit/922073f8601479e93071f56f0745041291b206fdFixvia CVE List
- github.com/electron/electron/commit/c965cee73284c4b230a81d51a7db6115e55da8c0Fixvia CVE List
- github.com/electron/electron/releases/tag/v42.11.3Fixvia CVE List
- github.com/electron/electron/releases/tag/v43.7.0Fixvia CVE List
- github.com/electron/electron/releases/tag/v44.3.0Fixvia CVE List
- github.com/electron/electron/releases/tag/v45.0.0-alpha.5Fixvia CVE List
- github.com/electron/electron/security/advisories/GHSA-fw47-9c62-h3vwAdvisoryvia CVE List
- github.com/advisories/GHSA-fw47-9c62-h3vwAdvisoryvia GitHub
- github.com/electron/electron/pull/53656Referencevia CVE List
- github.com/electron/electron/pull/53679Referencevia CVE List
- github.com/electron/electron/pull/53688Referencevia CVE List
- github.com/electron/electron/pull/53689Referencevia CVE List
- github.com/electron/electron/pull/53736Referencevia CVE List