---
id: "CVE-2026-113798"
kind: "vulnerability"
aliases: ["CVE-2026-113798", "GHSA-x562-297c-g43g"]
title: "Electron: Pointer lock permission requests can be attributed to the wrong frame"
severity: "medium"
cvss: 5.400000095367432
epss: 0.0020699999295175076
exploited: false
status: "open"
category: "package"
products: [{"name": "electron", "fixed": ["45.0.0-alpha.13"], "affected": ">= 45.0.0-alpha.1, < 45.0.0-alpha.13", "ecosystem": "npm"}, {"name": "electron", "fixed": ["44.5.0"], "affected": ">= 44.0.0-alpha.1, < 44.5.0", "ecosystem": "npm"}, {"name": "electron", "fixed": ["43.7.6"], "affected": ">= 43.0.0-alpha.1, < 43.7.6", "ecosystem": "npm"}, {"name": "electron", "fixed": ["42.11.9"], "affected": "< 42.11.9", "ecosystem": "npm"}]
ecosystems: ["npm"]
tags: ["cwe-346", "desktop-apps", "electron", "javascript", "package"]
not_affected_if: ["no-permission-handler-by-origin", "no-untrusted-iframes", "pointerlock-denied"]
published_at: "2026-10-21T17:18:24+00:00"
first_seen_at: "2026-10-23T19:11:31+00:00"
updated_at: "2026-10-23T21:57:29+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-x562-297c-g43g", "first_seen_at": "2026-10-23T19:11:31+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-113798", "first_seen_at": "2026-10-23T21:57:29+00:00"}]
---

# Electron: Pointer lock permission requests can be attributed to the wrong frame

Electron mis-attributes pointer lock permission requests from some cross-origin iframes to the top-level page's origin and main-frame flag. An embedded untrusted frame can be granted pointer lock under the top-level page's identity by apps that decide permissions by origin.

_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.13 fixed 45.0.0-alpha.13
- npm:electron affected >= 44.0.0-alpha.1, < 44.5.0 fixed 44.5.0
- npm:electron affected >= 43.0.0-alpha.1, < 43.7.6 fixed 43.7.6
- npm:electron affected < 42.11.9 fixed 42.11.9

## How to check

Check whether your app's session.setPermissionRequestHandler grants 'pointerLock' based on requestingUrl or isMainFrame, and whether your pages embed untrusted iframes.
Run: npm ls electron

## Fix

Upgrade electron to 45.0.0-alpha.13, 44.5.0, 43.7.6, or 42.11.9 (match your major line).
Workaround until upgraded: deny the pointerLock permission for web contents that embed untrusted frames.

## Timeline

- 2026-10-23T19:11:31+00:00 ghsa https://github.com/advisories/GHSA-x562-297c-g43g
- 2026-10-23T21:57:29+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-113798

## From the sources

### Impact
For `pointerLock` permission requests made from some cross-origin iframes, `session.setPermissionRequestHandler()` was given the top-level frame's `requestingUrl` and `isMainFrame` instead of the requesting frame's. Apps that grant pointer lock based on the requesting origin could grant it to embedded content under the top-level page's identity.

Apps are only affected if they embed untrusted content in iframes and decide `pointerLock` requests by origin in `setPermissionRequestHandler`. Apps that do not embed untrusted content, or that deny `pointerLock` for it, are not affected.

### Workarounds
Deny the `pointerLock` permission for web contents that embed untrusted frames.

### Fixed Versions
* `45.0.0-alpha.13`
* `44.5.0`
* `43.7.6`
* `42.11.9`

### 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_
