Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft object with enumerable own __proto__ key
-
DeliverySend crafted object across contextBridge from renderer
-
ExploitBridge Set() invokes Object.prototype.__proto__ setter in preload context
-
ExecutionPreload-side object prototype mutated to attacker-controlled object
-
PersistPreload reads inherited property without own-property check
-
ImpactAttacker-supplied value used in privileged preload logic
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two application-level conditions must be simultaneously true. First, the Electron app's preload script must expose a contextBridge API function that accepts a JavaScript object (not a primitive) originating from untrusted renderer content - specifically, the object must be passed by the untrusted page, not constructed by the preload itself. Second, the preload code must read properties from that object using inherited lookup (e.g., |
| Impact | The official CVSS 3.1 vector AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N scores 5.4 (Medium), and the AC:H rating accurately reflects the conditional nature of the attack: the preload code must both accept object arguments from untrusted content and read inherited properties without own-property guards. Many production Electron apps will not exhibit both conditions simultaneously. The S:C metric is the most significant signal - it captures the renderer-to-preload boundary crossing, which is architecturally meaningful because preload scripts often hold Node.js IPC channels, file system access, or credential material. No EPSS data was provided, and the vulnerability is absent from CISA KEV, indicating no confirmed mass exploitation. The absence of a public POC further reduces near-term opportunistic risk. The primary risk population is apps with loosely typed preload bridge APIs that proxy untrusted objects directly into privileged code paths. For well-written preload scripts using own-property checks or null-prototype objects, this CVE is a non-event even on unpatched Electron versions. |
| Exploit ScenarioDerived | A malicious web page loaded in a vulnerable Electron app uses |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Prototype pollution via Electron's contextBridge allows untrusted renderer-side web content to smuggle a malicious prototype across the isolation boundary into preload script context, bypassing context isolation in versions prior to 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.4. Exploitation is conditional on preload scripts accepting object arguments from untrusted content and reading inherited properties without own-property guards. No public exploit has been identified at time of analysis, and the flaw is not listed in CISA KEV; however, the scope-change (S:C) CVSS metric reflects that a successful attack crosses the renderer-to-preload privilege boundary, which can have amplified consequences in apps that expose sensitive Node.js APIs through the bridge.
RemediationAI
Upgrade to a patched Electron release: v39.8.9 (https://github.com/electron/electron/releases/tag/v39.8.9), v40.9.2 (https://github.com/electron/electron/releases/tag/v40.9.2), v41.2.2 (https://github.com/electron/electron/releases/tag/v41.2.2), or v42.0.0-beta.4 (https://github.com/electron/electron/releases/tag/v42.0.0-beta.4). The patch is available in published GitHub releases and confirmed by the GHSA advisory. If an immediate framework upgrade is not feasible, the vendor-recommended interim workaround is to audit all preload bridge APIs that accept object arguments and replace bare property reads (e.g., obj.prop) with own-property checks using Object.hasOwn(obj, key) - this prevents access to prototype-injected values. Alternatively, copy inbound objects onto a null-prototype container before use: const safe = Object.assign(Object.create(null), untrustedObj), which strips the entire prototype chain. Both workarounds require preload code changes and add developer burden; they should not substitute for the framework patch long-term.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 4 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's contextBridge is the sanctioned V8-level mechanism for sharing JavaScript values between the sandboxed renderer context (untrusted web content) and the privileged preload context (which has access to Node.js APIs). The root cause is CWE-1321 (Prototype Pollution): the C++ bridge implementation in electron_api_context_bridge.cc used V8's generic Set() API to copy object properties from one context to the other. When an object with an own property literally named __proto__ was passed across the bridge, the Set() call invoked the inherited Object.prototype.__proto__ setter in the destination context, mutating the destination object's prototype chain rather than writing a plain own data property. The fix (PR #51083) substitutes CreateDataProperty(), which unconditionally writes an own data property regardless of the key name, eliminating setter invocation. The affected package is npm/electron (cpe:2.3:a:electron:electron:*:*:*:*:*:*:*:*) across all major release lines below the fixed versions.
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
AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
Network vector because untrusted web content is the attack source; AC:H because exploitation requires non-default preload coding patterns; S:C reflects the renderer-to-preload context boundary crossing; C:L/I:L because impact is bounded by what the preload exposes.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.4, objects copied across the contextBridge boundary from untrusted content could carry an attacker-influenced prototype, enabling prototype-pollution-style attacks against preload code despite context isolation being enabled. Apps are only affected if their preload code accepts object arguments from untrusted content and reads properties from them without own-property checks, while apps that only accept primitive arguments or validate object arguments are not affected. This issue is fixed in 39.8.9, 40.9.2, 41.2.2, and 42.0.0-beta.4.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Remote code execution in 5ire 0.15.2 and earlier arises because the desktop AI assistant renders Mermaid diagrams with s
Cross-site scripting in DeepChat's Mermaid diagram renderer escalates to full remote code execution on affected desktop
Remote code execution in DeepChat 0.5.1 and below is possible through a cross-site scripting flaw in Mermaid diagram ren
Stored cross-site scripting in SiYuan through 3.8.4 lets an attacker who can set a notebook name containing an HTML payl
GitHub Electron before 1.6.8 allows remote command execution because of a nodeIntegration bypass vulnerability. Rated hi
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
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
electron-updater allows for automatic updates for Electron apps. Rated high severity (CVSS 7.5), this vulnerability is r
Cross-origin read bypass in Electron's custom protocol handler exposes sensitive application data to remote pages via fe
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
In Electron before versions 7.2.4, 8.2.4, and 9.0.0-beta21, there is a context isolation bypass. Rated critical severity
EUVD-2026-53543
GHSA-ff2p-hmqr-hxm4
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB