---
id: "CVE-2026-113800"
kind: "vulnerability"
aliases: ["CVE-2026-113800", "GHSA-fw47-9c62-h3vw"]
title: "Electron: HID and USB permission checks can be attributed to the wrong origin"
severity: "medium"
cvss: 5.400000095367432
epss: 0.002409999957308173
exploited: false
status: "open"
category: "runtime"
products: [{"name": "electron", "fixed": ["45.0.0-alpha.5"], "affected": ">= 45.0.0-alpha.1, < 45.0.0-alpha.5", "ecosystem": "npm"}, {"name": "electron", "fixed": ["44.3.0"], "affected": ">= 44.0.0-alpha.1, < 44.3.0", "ecosystem": "npm"}, {"name": "electron", "fixed": ["43.7.0"], "affected": ">= 43.0.0-alpha.1, < 43.7.0", "ecosystem": "npm"}, {"name": "electron", "fixed": ["42.11.3"], "affected": "< 42.11.3", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["cwe-346", "desktop-apps", "electron", "hid", "runtime", "usb"]
not_affected_if: ["default-config", "no-cross-origin-iframes-with-hid-usb", "no-hid-usb-permission-handler"]
published_at: "2026-10-21T17:18:25+00:00"
first_seen_at: "2026-10-23T19:11:32+00:00"
updated_at: "2026-10-23T21:57:29+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-fw47-9c62-h3vw", "first_seen_at": "2026-10-23T19:11:32+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-113800", "first_seen_at": "2026-10-23T21:57:29+00:00"}]
---

# Electron: HID and USB permission checks can be attributed to the wrong origin

Electron's session.setPermissionCheckHandler reported the top-level page's origin and details for hid and usb permission checks made from iframes, instead of the iframe's own. An embedded cross-origin frame that was delegated hid or usb can therefore be granted access meant for the top-level page by origin-based logic.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- npm:electron affected >= 45.0.0-alpha.1, < 45.0.0-alpha.5 fixed 45.0.0-alpha.5
- npm:electron affected >= 44.0.0-alpha.1, < 44.3.0 fixed 44.3.0
- npm:electron affected >= 43.0.0-alpha.1, < 43.7.0 fixed 43.7.0
- npm:electron affected < 42.11.3 fixed 42.11.3

## How to check

Search app code for setPermissionCheckHandler and check whether it allows 'hid' or 'usb' based on origin.
Check for iframes with allow="hid" or allow="usb" pointing to cross-origin or untrusted content.
Check the installed electron version in package.json and node_modules/electron/package.json.

## Fix

Upgrade to electron 45.0.0-alpha.5, 44.3.0, 43.7.0, or 42.11.3, matching your release line.
Until upgraded, stop delegating hid/usb to untrusted iframes or decide using details.frame in the select-hid-device / select-usb-device handler.

## Timeline

- 2026-10-23T19:11:32+00:00 ghsa https://github.com/advisories/GHSA-fw47-9c62-h3vw
- 2026-10-23T21:57:29+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-113800

## From the sources

### 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.5`
* `44.3.0`
* `43.7.0`
* `42.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)

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
