Skip to main content

Electron EUVDEUVD-2026-107361

| CVE-2026-114121 MEDIUM
Origin Validation Error (CWE-346)
2026-10-21 GitHub_M GHSA-997q-gvvc-jwmx
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Load untrusted web content in Electron window
  2. Delivery
    Open popup or trigger server redirect to external-protocol URL
  3. Exploit
    Initiating document disposed mid-navigation
  4. Execution
    requestingUrl misattributed to trusted origin
  5. Persist
    Permission handler approves openExternal
  6. Impact
    OS-registered application launched by untrusted content

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

Exploitable only when the embedding Electron application BOTH grants OPEN_EXTERNAL permission based on the requestingUrl/origin supplied to session.setPermissionRequestHandler AND allows untrusted content to open or navigate windows. The attack also requires a timing/redirect condition where the initiating document no longer exists when the external-protocol request reaches the browser (e.g. a popup whose initiator navigated away, or a server-side redirect to the external URL), which is reflected in AC:H. Apps that deny openExternal outright, do not key approval on origin, or do not render untrusted content are NOT affected regardless of version. No end-user interaction beyond visiting attacker content is strictly required, and no authentication is needed (PR:N).

Impact

This is a moderate, conditionally-exploitable origin-confusion flaw (CWE-346) rather than a top-priority emergency. The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N = 5.4 Medium) is internally consistent with the description: it is network-reachable and needs no authentication, but AC:H correctly reflects that exploitation depends on a specific, non-default application design plus a redirect/navigation timing window where the initiating document is gone. No EPSS score, KEV listing, or POC was provided in the input, so there is no signal of active exploitation or weaponization - no public exploit identified at time of analysis. The most important caveat is that this is NOT a flaw exploitable against a default Electron app: it only matters when the embedding application (a) grants openExternal based on the requestingUrl/origin passed to setPermissionRequestHandler AND (b) permits untrusted content to open or navigate windows. Where that combination exists, the S:C scope change (crossing from web content into an OS-registered external application) makes the impact meaningful despite the low CVSS. The 'Information Disclosure' tag understates the issue - the real impact is unauthorized external-application launch via origin spoofing, not data leakage.

Exploit ScenarioDerived

In an Electron app that allows untrusted/third-party web content in a window and approves openExternal requests by checking the requestingUrl, an attacker-controlled page initiates a navigation to an external-protocol URL (e.g. via a popup or server redirect) and arranges for the initiating document to be gone when the request reaches the browser. Electron then attributes the launch to a trusted document's origin, so the permission handler approves it and an OS-registered external application is launched on behalf of the untrusted content. No public exploit code was identified in the provided intelligence.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 21, 2026

Origin confusion in Electron's external protocol handling lets a launch request be attributed to a document other than the one that actually initiated it, so the requestingUrl handed to session.setPermissionRequestHandler can name trusted content for a launch requested by untrusted content. Applications running Electron prior to 42.11.3, 43.7.0, 44.3.0, or 45.0.0-alpha.5 are exposed only if they both grant openExternal based on that requesting origin and permit untrusted content to open or navigate windows, in which case attacker-supplied content may reach an OS-registered external application such as a mail client or custom URL handler. Exploitation additionally depends on a timing condition where the initiating document is gone when the request reaches the browser (a popup whose opener navigated away, or a server redirect to the external URL), which is why the assessed vector carries AC:H; no public exploit code has been identified at time of analysis, and the issue is not confirmed actively exploited (CISA KEV).

RemediationAI

Upgrade to Electron 42.11.3, 43.7.0, 44.3.0, or 45.0.0-alpha.5 (or later) as documented in advisory GHSA-997q-gvvc-jwmx and the corresponding release tags; the fixes land via PRs 53682, 53696, 53697, 53698, 53699 and commits 25057643bf6d9a20bad69e45707551ccf546f5ce, 8aa5414f73792ed3b2e3f9ab6391b1832e6dc2c3, 92a783952891805f2f82f344c40a6917b98a7d98, e0a20d5277b567aea8603f8e9852a4341407a586, and e3a400911084537bce7380ffea8af939572ce8dd. If upgrading cannot be done immediately, the decisive compensating control is to stop trusting requestingUrl for OPEN_EXTERNAL: deny external-protocol launches outright in setPermissionRequestHandler (trade-off: legitimate links to mail clients, SSO handlers, or custom URL schemes stop working) or gate approval on a hard-coded allowlist of the application's own trusted webContents/origins instead of the origin string in the permission details. Additionally, deny window opening for untrusted content via setWindowOpenHandler returning {action: 'deny'} and avoid loading remote or third-party content into BrowserWindows that can trigger external protocols (trade-off: breaks embedded browsing or OAuth popup flows that rely on window.open). Applications that already deny openExternal unconditionally, do not key approval on origin, or never render untrusted content need no emergency action beyond routine upgrade scheduling.

Affected VersionsENISA

electron 45.0.0-alpha.1, < 45.0.0-alpha.5
electron 43.0.0-alpha.1, < 43.7.0
electron < 42.11.3
electron 44.0.0-alpha.1, < 44.3.0

Affected Packages

npm electron fix: 42.11.3, 43.7.0, 44.3.0, 45.0.0-alpha.5

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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

Technical ContextAI · show details

Electron builds on Chromium's content layer, and external protocol launches flow through ElectronBrowserClient::HandleExternalProtocol into HandleExternalProtocolInUI and then WebContentsPermissionHelper::RequestOpenExternalPermission, which ultimately surfaces to embedders as the OPEN_EXTERNAL permission in session.setPermissionRequestHandler. The root cause is a CWE-346 origin validation error: when the initiating RenderFrameHost had already been disposed of or belonged to a different frame than the navigation (for example a popup or a redirect chain), the code fell back to the navigating WebContents' current main frame and stamped details["requestingUrl"] with render_frame_host->GetLastCommittedURL(), declaring that frame responsible. An attacker-influenced document could therefore cause the permission details to describe a trusted origin and main-frame status rather than the untrusted initiator. The upstream fix (PRs 53682, 53696, 53697, 53698, 53699; commits 25057643, 8aa5414f, 92a78395, e0a20d52, e3a40091) introduces an ExternalProtocolRequester carrying the initiator document's last committed origin and main-frame-ness captured at the moment the request reaches the browser, plus an initiating_origin derived from server redirects, and passes that attribution into RequestOpenExternalPermission so ElectronPermissionManager only computes requestingUrl/isMainFrame from the RenderFrameHost when they are not already supplied. The same patch set also corrects user_gesture propagation, which had been hard-coded to false when forwarding external-protocol permissions.

Know when Electron gets its next vulnerability

  • 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 (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

Network-reachable untrusted web content needs no auth (PR:N), but a redirect/disposed-document race plus origin-based app config make it AC:H; launching an OS app is a scope change (S:C) with limited C/I impact.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Oct 21, 2026 - 18:03 EUVD
CVE Published
Oct 21, 2026 - 16:20 cve.org
MEDIUM 5.4

DescriptionCVE.org

Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to versions 42.11.3, 43.7.0, 44.3.0, and 45.0.0-alpha.5, requests to open external protocol URLs could be attributed to a document other than the one that initiated them, causing the requestingUrl passed to session.setPermissionRequestHandler to identify trusted content for a launch requested by untrusted content. An application that grants openExternal based on the requesting origin and allows untrusted content to open or navigate windows could therefore allow that content to launch an OS-registered external application. This issue is fixed in versions 42.11.3, 43.7.0, 44.3.0, and 45.0.0-alpha.5.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
High
Electron underpins many widely-deployed desktop apps (Slack, Teams, VS Code, Discord)
Threat Intel
1
1 source
Data Quality
5 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
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.

CVE-2018-1000006 HIGH POC
8.8 Jan 24

GitHub Electron versions 1.8.2-beta.3 and earlier, 1.7.10 and earlier, 1.6.15 and earlier has a vulnerability in the pro

CVE-2025-68669 CRITICAL POC
9.6 Dec 23

Remote code execution in 5ire 0.15.2 and earlier arises because the desktop AI assistant renders Mermaid diagrams with s

CVE-2025-67744 CRITICAL POC
9.6 Dec 16

Cross-site scripting in DeepChat's Mermaid diagram renderer escalates to full remote code execution on affected desktop

CVE-2025-66481 CRITICAL POC
9.6 Dec 09

Remote code execution in DeepChat 0.5.1 and below is possible through a cross-site scripting flaw in Mermaid diagram ren

CVE-2026-93922 HIGH POC
8.6 Sep 18

Stored cross-site scripting in SiYuan through 3.8.4 lets an attacker who can set a notebook name containing an HTML payl

CVE-2017-12581 HIGH POC
8.1 Aug 06

GitHub Electron before 1.6.8 allows remote command execution because of a nodeIntegration bypass vulnerability. Rated hi

CVE-2018-15685 HIGH POC
8.1 Aug 23

GitHub Electron 1.7.15, 1.8.7, 2.0.7, and 3.0.0-beta.6, in certain scenarios involving IFRAME elements and "nativeWindow

CVE-2018-1000136 HIGH POC
8.1 Mar 23

Electron version 1.7 up to 1.7.12; 1.8 up to 1.8.3 and 2.0.0 up to 2.0.0-beta.3 contains an improper handling of values

CVE-2024-39698 HIGH POC
7.5 Jul 09

electron-updater allows for automatic updates for Electron apps. Rated high severity (CVSS 7.5), this vulnerability is r

CVE-2026-70604 HIGH POC
7.4 Aug 05

Cross-origin read bypass in Electron's custom protocol handler exposes sensitive application data to remote pages via fe

CVE-2026-70611 MEDIUM POC
6.9 Aug 05

Native code execution outside the Chromium sandbox is achievable in Electron prior to 39.8.9, 40.9.2, 41.2.1, and 42.0.0

CVE-2020-4077 CRITICAL
9.9 Jul 07

In Electron before versions 7.2.4, 8.2.4, and 9.0.0-beta21, there is a context isolation bypass. Rated critical severity

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