Skip to main content

Electron CVE-2026-70608

| EUVDEUVD-2026-53564 HIGH
Protection Mechanism Failure (CWE-693)
2026-08-05 https://github.com/electron/electron GHSA-9f4c-93c8-jc8g
7.2
CVSS 3.1 · Vendor: https://github.com/electron/electron
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker serves malicious page at iframe-loaded origin
  2. Delivery
    Target Electron app loads content in sandboxed iframe (allow-scripts, no allow-popups)
  3. Exploit
    Iframe JS dispatches synthetic Ctrl+click on DOMContentLoaded
  4. Execution
    OpenURL navigation path invoked without sandbox popup flag check
  5. Persist
    New BrowserWindow spawned outside iframe sandbox boundary
  6. Impact
    Attacker-controlled window displayed in trusted app context

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Protection mechanism completeness
Exploitation Conditions

Exploitation requires the Electron application to actively embed untrusted or third-party HTML content inside a sandboxed iframe where the sandbox attribute omits the allow-popups keyword (for example, sandbox='allow-scripts'). The application must also not have a setWindowOpenHandler that returns { action: 'deny' } for untrusted content - apps that do are explicitly not affected per the advisory. No user interaction is required; the iframe JavaScript can trigger the bypass automatically on page load via a synthetic MouseEvent with ctrlKey: true. The attack vector is limited to the iframe content origin: an attacker must control or compromise the content served into that iframe. Electron apps that do not embed untrusted content in sandboxed iframes, or that enforce window denial through setWindowOpenHandler, are not exploitable regardless of version.

Impact

The CVSS 3.1 base score of 7.2 (AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N) reflects network-reachable, unauthenticated exploitation with a scope change - the iframe sandbox boundary is escaped. In practice, real-world risk is conditional: only Electron applications that (1) embed untrusted or third-party content in sandboxed iframes and (2) rely solely on the iframe sandbox for popup prevention are affected. Applications using setWindowOpenHandler with { action: 'deny' } as a defense-in-depth layer are not exploitable. EPSS data was not provided in the input, so exploitation probability cannot be quantified beyond the CVSS signal. KEV status is not confirmed - no active exploitation has been attributed by CISA. The patch diff includes a functional regression test that doubles as a proof-of-concept, demonstrating the bypass requires only a DOMContentLoaded handler dispatching a synthetic Ctrl+click, with no user gesture required. This elevates practical severity for affected apps beyond what a low EPSS score might suggest. The S:C (scope change) metric is justified because the iframe sandbox boundary - a security primitive - is crossed. Overall: high priority for Electron apps embedding untrusted content, moderate-to-low priority for apps not in that configuration.

Exploit ScenarioDerived

A threat actor serves a malicious webpage from an attacker-controlled origin that is embedded as a sandboxed iframe (with allow-scripts but without allow-popups) inside a vulnerable Electron application. On DOMContentLoaded, the iframe's JavaScript constructs an anchor element and dispatches a synthetic MouseEvent with ctrlKey: true, triggering the OpenURL navigation path. Because the affected versions do not check WebSandboxFlags::kPopups in OpenURLFromTab, Electron opens a new BrowserWindow to an attacker-controlled URL - bypassing the sandbox restriction entirely, with no user click required. The resulting window could display a phishing page within the trusted application chrome or attempt to initiate further Electron API interactions.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 05, 2026

Sandboxed iframe popup restriction bypass in Electron allows untrusted iframe content to open new windows or trigger setWindowOpenHandler without user interaction, despite the allow-popups keyword being absent from the sandbox attribute. Electron versions prior to 42.0.1, 41.10.3, and 39.8.10 are affected. The bypass occurs because FrameLoader::StartNavigation and WebContents::OpenURLFromTab in the OpenURL code path did not check the iframe's sandbox popup flags, permitting emulated Ctrl+click events from untrusted JavaScript to create new browsing contexts. No public exploit or CISA KEV listing is confirmed at time of analysis, but the patch diff includes a working proof-of-concept test.

RemediationAI

Upgrade Electron to the appropriate patched release: 42.0.1, 41.10.3, or 39.8.10 depending on your current release line. Patches are merged via pull requests #51437, #51438, and #51439 against the corresponding branches. Where immediate upgrade is not feasible, the vendor-recommended workaround is to return { action: 'deny' } from setWindowOpenHandler for any content that is not fully trusted - this ensures even if the sandbox bypass fires, the resulting window creation is blocked at the Electron API layer. This workaround has no functional side effects for applications that already intend to deny external window creation, but may suppress legitimately expected popups in applications that selectively allow them; review your setWindowOpenHandler logic carefully before applying it broadly. Relying solely on the iframe sandbox attribute without allow-popups as a popup prevention mechanism should be treated as insufficient on unpatched versions.

Affected VersionsENISA

electron 42.0.0-alpha.1, < 42.0.1
electron 40.0.0-alpha.1, < 41.10.3
electron < 39.8.10

Affected Packages

npm electron fix: 39.8.10, 41.10.3, 42.0.1
euvd electron_40_0_0_alpha_1 fix: 41.10.3
euvd electron_42_0_0_alpha_1 fix: 42.0.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in npm, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Electron wraps Chromium's Blink rendering engine and exposes it through a Node.js-based desktop application framework (pkg:npm/electron). The HTML sandbox attribute restricts iframe capabilities; omitting allow-popups is supposed to prevent the iframe from opening new windows. The root cause (CWE-693, Protection Mechanism Failure) is a missing sandbox flag check in two Chromium/Electron code paths: FrameLoader::StartNavigation (Blink-level) and WebContents::OpenURLFromTab (Electron-level). When an untrusted event such as a programmatically dispatched Ctrl+click MouseEvent triggers a new-tab navigation (kNavigationPolicyNewForegroundTab), the code routed through OpenURL skipped the WebSandboxFlags::kPopups check entirely. The fix adds an explicit check in both frame_loader.cc (for kFromUntrustedEvent navigation policy) and electron_api_web_contents.cc (checking SandboxFlags::kPopups on the initiating frame tree node before allowing OpenURLFromTab to proceed). The affected npm package ranges are: >= 42.0.0-alpha.1, < 42.0.1; >= 40.0.0-alpha.1, < 41.10.3; and < 39.8.10.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/electron/electron) PRIMARY 7.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 7.2 HIGH

Network-delivered iframe content requires no app privileges; untrusted event auto-fires with no user gesture; scope changes as sandbox boundary is crossed; no availability impact.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (https://github.com/electron/electron).

CVSS VectorVendor: https://github.com/electron/electron

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

DescriptionCVE.org

Impact

A sandboxed iframe without the allow-popups keyword could still open a new window (or trigger setWindowOpenHandler) with no user interaction, because new-window navigations taking the OpenURL path did not apply the iframe sandbox popup restriction.

Apps that embed untrusted content in sandboxed iframes and rely on the absence of allow-popups to prevent window creation are affected. Apps that deny window creation in setWindowOpenHandler, or that do not embed untrusted content in sandboxed iframes, are not affected.

Workarounds

Return { action: 'deny' } from setWindowOpenHandler for any content you do not trust, rather than relying on the iframe sandbox alone.

Fixed Versions

  • 42.0.1
  • 41.10.3
  • 39.8.10

For more information

If you have any questions or comments about this advisory, email Electron at [security@electronjs.org](mailto:security@electronjs.org)

Executive ViewAI

Why It Matters

Electron versions prior to 42.0.1, 41.10.3, and 39.8.10 contain a sandbox bypass vulnerability that allows untrusted iframe content to open new windows and trigger handlers without user interaction. This affects any organization using Electron-based applications (including developer tools, communication platforms, and enterprise software) that load third-party or untrusted web content. The vulnerability could enable phishing attacks, malware delivery, or unauthorized system access through compromised desktop applications deployed across your workforce.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
High
Electron underpins VS Code, Slack, Discord, Teams, and many enterprise apps
Threat Intel
1
1 source
Data Quality
7 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy