☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 6.8 CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N 🐛 CWE-552
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2020-4075

CVE-2020-4075 — Arbitrary file read via window-open IPC in Electron
📅 PUBLISHED: 2020-07-07 00:00 UTC 🔄 UPDATED: 2026-10-02 19:32 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 1.18%
👁️
1.18% probability
29.4× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1213
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Patch available — upgrade to latest release
CVSS VECTOR BREAKDOWN 6.8
AV: N Attack Vector Network
AC: H Attack Complexity High
PR: N Privileges Required None
UI: R User Interaction Required
S: U Scope Unchanged
C: H Confidentiality High
I: N Integrity None
A: N Availability None
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2020-4075 is an arbitrary local file read vulnerability in the Electron framework, affecting all versions prior to 7.2.4, 8.2.4, and 9.0.0-beta.21. The vulnerability is triggered when a child window is opened via window.open with unsafe window options, allowing a remote attacker to read arbitrary local files from the victim's filesystem. Electron applications that render untrusted web content or allow navigation to external URLs are at risk. The vulnerability has a CVSS score of 6.8 and carries a patch confidence of 2/4 (CLAIMED), indicating the fix is reported but not independently confirmed.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability exists in the Electron framework's handling of the window.open JavaScript API. When a web page rendered inside an Electron window calls window.open to create a child window, the application's webContents will emit a new-window event. The event includes parameters for the target URL and the window options (also known as window features) that will be used to construct the new BrowserWindow.

The flaw specifically involves the handling of window options that are passed to the child window creation. If an attacker can control the options parameter — either by injecting JavaScript into a page rendered in the Electron window or by navigating the Electron window to a malicious external site — they can define unsafe window settings. These unsafe options may include features such as nodeIntegration or webSecurity toggles, or other privileged configuration flags, which are normally restricted or disabled for security purposes.

By enabling such unsafe options in a child window, the attacker gains access to Node.js APIs from within that child window's renderer process. This effectively bridges the browser and Node.js execution contexts, allowing the attacker to use Node.js fs module operations to read arbitrary files from the local file system.

The attack vector is primarily remote. Since Electron applications commonly load remote web content (for example, a login page from a company's server), any vulnerability in the underlying Chromium rendering engine or a XSS flaw in the web application itself could be chained with this bug. Once JavaScript execution is achieved in the compromised context, the attacker simply calls window.open with maliciously crafted options, enabling Node.js integration, and reads local files through JavaScript.

The NVD description notes that the fix involves calling event.preventDefault() on all new-window events where the url or options are not expected. This confirms that the vulnerability is triggered at the point where the application handles — or fails to handle — the new-window event. Applications that fail to validate the options parameter and prevent default window creation are exposed.

It is worth noting that the CVSS vector indicates a user interaction requirement (UI:R), meaning the victim must either click a link or be lured to a URL that launches the malicious window.open call. The attack complexity is rated high (AC:H), reflecting the requirement that the application must render untrusted content or otherwise allow an attacker-controlled script to execute.

No specific affected versions list beyond the fixed versions was provided in the intelligence data, and the patch confidence is only 2/4, meaning a single source (the CNA) claims a patch exists but it has not been independently verified.


Exploitation Scenarios

The attack chain for CVE-2020-4075 can be outlined as follows, based strictly on the available description and knowledge of the Electron framework architecture.

1. Reconnaissance/Target Identification

The attacker first identifies an Electron-based application that:

  • Renders remote web content (i.e., loads pages from an external server rather than solely local content)
  • Does not intercept or validate the new-window event
  • Does not call event.preventDefault() on window-open attempts

Common targets include Electron-based chat clients, developer tools, internal enterprise portals, or any desktop application that renders HTML from external sources.

2. Flaw Trigger

The attacker needs to achieve JavaScript execution within the Electron application's renderer process. This can be achieved through:

  • Social engineering: tricking the user into clicking a link that opens a malicious URL inside the Electron window
  • Chaining with a web vulnerability such as XSS in the remoted content
  • Exploiting Chromium browser vulnerabilities (as a secondary issue, outside the scope of this CVE)

Once JavaScript executes, the attacker calls window.open with a crafted URL and a specially crafted options/features string that includes unsafe settings — such as enabling Node.js integration (nodeIntegration: true) or disabling web security.

3. Payload/Execution

The child window opens with elevated privileges per the defined options. Since Node.js APIs are now accessible, the attacker can call require('fs').readFileSync('/etc/passwd') or similar Node.js file system operations to read local file contents.

4. Post-Exploitation Impact

  • Read sensitive local files: credentials stored in config files (e.g., .env, settings.json), SSH keys, browser profiles, documents
  • Potentially exfiltrate data to an attacker-controlled server via HTTP requests
  • If sufficient permissions exist, sensitive data like password managers, VPN certificates, or database connection strings could be exposed
  • Lateral movement within the enterprise network if the Electron application runs with elevated privileges or stores network credentials

No public PoC is available for this vulnerability; the attack chain is inferred from the vulnerability class (unsafe window options enabling Node.js access) and the documented fix guidance.


Impact Assessment

CVE-2020-4075 is rated with a CVSS base score of 6.8. The vector string indicates the following subscores:

  • Attack Vector: Network (AV:N) — remotely exploitable
  • Attack Complexity: High (AC:H) — requires conditions such as rendering untrusted content
  • Privileges Required: None (PR:N)
  • User Interaction: Required (UI:R) — victim must interact, e.g., clicking a link
  • Confidentiality Impact: High (C:H) — local file disclosure
  • Integrity Impact: None (I:N)
  • Availability Impact: None (A:N)

Business Impact: The confidentiality impact is rated high, meaning successful exploitation exposes sensitive local file contents. For enterprise users, this could include credentials, configuration files with secrets, private keys, and internal documentation.

Affected Systems: Any Electron application built with versions prior to 7.2.4, 8.2.4, or 9.0.0-beta.21. Given Electron's broad usage in enterprise software (Slack, Discord, VS Code, and numerous internal tools), the blast radius is substantial. Applications that load remote content are at the highest risk.

Blast Radius: The attack requires user interaction, and the exploit itself is not trivial to deliver (high complexity). However, once delivered, the result is arbitrary file read, which can easily transition into full system compromise if credentials are found.


Detection Guidance

Due to the local nature of the vulnerability (arbitrary file read via Node.js APIs), network-based detection is challenging. The exploit occurs within the Electron application process, and the subsequent file read operations are local system calls, not network requests. Detection should focus on:

  • Unusual child process creation (Chromium spawning with unusual flags)
  • File read anomalies from Electron/Chromium processes
  • Suspicious JavaScript/Node.js execution within Electron renderers

Sigma Rule

title: Suspicious Node.js File Access from Electron Renderer Process
id: 4f8a9c2e-7b3d-4e5a-9f1e-2c6b8a1f3d5e
status: experimental
description: Detects potential arbitrary file read exploitation via Electron window.open (CVE-2020-4075)
author: Valtersit Threat Intelligence
logsource:
    category: process_creation
    product: windows
detection:
    selection_electron:
        Image|endswith: '\electron.exe'
        CommandLine|contains|all:
            - '--node-integration'
            - '--web-security=false'
    selection_file_read:
        # Sysmon EventID 11 (FileCreate) or equivalent file access telemetry
        TargetFilename|contains:
            - '\AppData\'
            - '\Users\' 
            - '\etc\'
    condition: selection_electron and selection_file_read
level: high
falsepositives:
    - Legitimate Electron applications with nodeIntegration enabled by design
    - Developer tools that intentionally access local files
tags:
    - attack.t1213
    - cve.2020-4075

YARA Rule

rule CVE_2020_4075_Electron_WindowOpen_Exploit
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects JavaScript patterns used in CVE-2020-4075 exploitation"
        cve = "CVE-2020-4075"
        date = "2024-01-15"
    strings:
        $s1 = "window.open" ascii wide
        $s2 = "nodeIntegration" ascii wide
        $s3 = "webSecurity" ascii wide
        $s4 = "fs.readFileSync" ascii wide
        $s5 = "require('fs')" ascii wide
        $s6 = "event.preventDefault" ascii wide
    condition:
        // Look for window.open with node integration enabled
        ($s1 and $s2) or
        // Look for file read calls following window.open pattern
        ($s1 and $s4) or
        ($s2 and $s4)
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (msg:"CVE-2020-4075 Electron window.open Unsafe Options Attempt"; flow:established,to_server; content:"window.open"; http_client_body; nocase; content:"nodeIntegration"; http_client_body; nocase; content:"true"; http_client_body; nocase; within:100; classtype:attempted-user; sid:20204075; rev:1; metadata:created_at 2024_01_15, updated_at 2024_01_15, cve CVE-2020-4075;)

Elastic Detection

// EQL query for Elastic Security
process where process.name == "electron.exe" and
  process.command_line : ("*--node-integration*", "*--web-security=false*") and
  file.path : ("C:\\Users\\*", "C:\\etc\\*", "C:\\AppData\\*")

Splunk SPL Query

index=windows sourcetype=WinEventLog:Sysmon
| search process_name=electron.exe
| where match(command_line, "(?i)(--node-integration|--web-security=false)")
| join type=inner target_process_id [
    index=windows sourcetype=WinEventLog:Sysmon EventCode=11
    | rename process_id as target_process_id
    | where match(TargetFilename, "(?i)(C:\\Users|C:\\etc|C:\\AppData)")
]
| table _time, host, process_name, process_id, command_line, TargetFilename
| sort -_time

Wazuh OSSEC Rule

<group name="cve-2020-4075,">
  <rule id="100475" level="12">
    <if_sid>530</if_sid>
    <match>electron.exe</match>
    <regex>--node-integration|--web-security=false</regex>
    <description>CVE-2020-4075: Electron process started with unsafe window options</description>
    <group>cve-2020-4075,</group>
  </rule>

  <rule id="100476" level="15">
    <if_sid>100475</if_sid>
    <regex>AppData|Users|etc</regex>
    <description>CVE-2020-4075: Potential arbitrary file read via Electron</description>
    <group>cve-2020-4075,</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 — CLAIMED — A single source (the CNA) claims a patch exists in versions 9.0.0-beta.21, 8.2.4, and 7.2.4, but this has not been independently confirmed.

1. Immediate Mitigations:

  • If the application built on Electron allows any form of remote content rendering, disable it or restrict navigation to trusted domains only
  • For developers: ensure all new-window events call event.preventDefault() when the URL or options are not explicitly whitelisted, as recommended in the NVD description
  • For enterprise users running third-party Electron apps: contact the vendor/developer to verify they have patched their application with one of the fixed Electron versions
  • Restrict Electron applications from accessing sensitive directories using OS-level file system permissions and sandboxing (e.g., Windows AppContainer, macOS sandbox-exec, or Linux AppArmor/SELinux)

2. Patch/Upgrade Steps:

  • Upgrade Electron to version 7.2.4 or later (for 7.x line)
  • Upgrade Electron to version 8.2.4 or later (for 8.x line)
  • Upgrade Electron to version 9.0.0-beta.21 or later (for 9.x beta line)
  • If the Electron application is a third-party product, upgrade to the vendor's patched release that incorporates one of these fixed Electron versions
  • Verify the patch by testing that window.open with unsafe options are blocked by the application

3. Long-Term Hardening:

  • Apply the principle of least privilege to Electron applications: disable nodeIntegration globally (nodeIntegration: false) and enable it only for explicitly trusted content
  • Use contextIsolation: true and sandbox: true settings in Electron web preferences to reduce the impact of renderer compromise
  • Regularly audit all Electron-based applications in the enterprise environment for outdated versions
  • Monitor CISA KEV and vendor advisories for updates — at the time of this report, CVE-2020-4075 is NOT listed on the CISA Known Exploited Vulnerabilities catalog
  • Educate users about the risk of clicking links inside Electron-based applications that render web content

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2020-4075 — Official NVD record with CVSS score 6.8 and vulnerability description
  2. GitHub Advisory (Electron): https://github.com/electron/electron/releases — Release notes for versions 7.2.4, 8.2.4, and 9.0.0-beta.21 containing the fix
  3. CISA KEV Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Confirms CVE-2020-4075 is NOT listed as an actively exploited vulnerability to date
  4. Electron Security Documentation: https://www.electronjs.org/docs/latest/tutorial/security — Official guidance on hardening Electron applications, including new-window event handling

Threat Actor Campaigns: No known threat actor campaigns or in-the-wild exploitation has been reported for this CVE as of this writing. The EPSS score of 0.01175 (64.7th percentile) indicates moderate exploited probability relative to other published CVEs, but no confirmed exploitation has been observed in the wild.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

product:electron
http.title:"Electron"
http.html:"electron" "window.open"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2020-4075/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.