Описание
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5, when a renderer calls window.open() with a target name, Electron did not correctly scope the named-window lookup to the opener's browsing context group. A renderer could navigate an existing child window that was opened by a different, unrelated renderer if both used the same target name. If that existing child was created with more permissive webPreferences (via setWindowOpenHandler's overrideBrowserWindowOptions), content loaded by the second renderer inherits those permissions. Apps are only affected if they open multiple top-level windows with differing trust levels and use setWindowOpenHandler to grant child windows elevated webPreferences such as a privileged preload script. Apps that do not elevate child window privileges, or that use a single top-level window, are not affected. Apps that additionally grant nodeIntegration: true or sandbox: false to child windows (contrary to the security recommendations) may be exposed to arbitrary code execution. This vulnerability is fixed in 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5.
A flaw was found in Electron, a framework for building desktop applications. This vulnerability allows a malicious component within an Electron application to hijack an existing child window opened by another part of the application if both use the same window name. This could lead to the malicious component inheriting elevated security permissions, potentially resulting in unauthorized information disclosure or, in specific configurations, arbitrary code execution.
Меры по смягчению последствий
To mitigate this issue, Electron application developers should avoid granting elevated webPreferences to child windows, particularly nodeIntegration: true or sandbox: false, when using setWindowOpenHandler. Applications should also ensure consistent trust levels across multiple top-level windows or avoid using named windows with window.open() across different trust contexts.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Build of Podman Desktop | podman-desktop-macos-1-0 | Affected | ||
| Red Hat Build of Podman Desktop | podman-desktop-windows-1-0 | Affected | ||
| Red Hat Build of Podman Desktop - Tech Preview | redhat-user-workloads/openshift-local-ext | Affected | ||
| Red Hat Enterprise Linux 10 | podman-desktop | Affected | ||
| Red Hat Enterprise Linux 10 | rh-podman-desktop | Affected |
Показывать по
Дополнительная информация
Статус:
EPSS
7.1 High
CVSS3
Связанные уязвимости
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 39.8.5, 40.8.5, 41.1.0, and 42.0.0-alpha.5, when a renderer calls window.open() with a target name, Electron did not correctly scope the named-window lookup to the opener's browsing context group. A renderer could navigate an existing child window that was opened by a different, unrelated renderer if both used the same target name. If that existing child was created with more permissive webPreferences (via setWindowOpenHandler's overrideBrowserWindowOptions), content loaded by the second renderer inherits those permissions. Apps are only affected if they open multiple top-level windows with differing trust levels and use setWindowOpenHandler to grant child windows elevated webPreferences such as a privileged preload script. Apps that do not elevate child window privileges, or that use a single top-level window, are not affected. Apps that additionally grant nodeIntegration:
Electron is a framework for writing cross-platform desktop application ...
Electron: Named window.open targets not scoped to the opener's browsing context
EPSS
7.1 High
CVSS3