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

CVE-2021-39184

CVE-2021-39184 — Sandboxed renderers can obtain thumbnails of arbitrary files through the nativeImage API
📅 PUBLISHED: 2021-10-12 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.05%
👁️
1.05% probability
26.3× above the median CVE
Tier: HIGH
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1204
👁️
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: L Attack Vector Local
AC: L Attack Complexity Low
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-2021-39184 is a vulnerability in the Electron framework that allows a sandboxed renderer process to request thumbnail images of arbitrary files on the host system. The flaw affects all Electron versions prior to 11.5.0, 12.1.0, and 13.3.0, and is fixed in versions 15.0.0-alpha.10, 14.0.0, 13.3.0, 12.1.0, and 11.5.0. Exploitation can lead to unauthorized disclosure of sensitive local file content, potentially including textual data, to a compromised or malicious renderer process.

The vulnerability carries a CVSS score of 6.8, indicating a medium-to-high severity issue, and has an EPSS score of 0.01050, meaning it is currently being actively tracked in the wild. No CISA KEV listing or public exploit code has been reported. Affected applications are those built on Electron, which includes many popular desktop applications such as Slack, Visual Studio Code, Discord, and countless others.

⚡ 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 resides in Electron's implementation of the nativeImage API, specifically the createThumbnailFromPath method. This API is designed to generate a thumbnail preview image for a given file path, presumably for use in file managers or media applications built on Electron.

The core flaw is a failure in the sandbox boundary enforcement. In Electron's security model, the renderer process is intended to run with limited privileges, confined by the sandbox. However, this vulnerability allows a sandboxed renderer to invoke createThumbnailFromPath with an arbitrary file path, and the main process will dutifully generate and return a thumbnail image of that file.

The critical security implication is that thumbnails are not simple icons — for many file types, the thumbnail generation process can extract and embed significant portions of the file's actual content. Text files, PDFs, documents, and source code files can have their textual content rendered into the thumbnail image. This means an attacker with control over a sandboxed renderer can effectively read arbitrary files from the user's filesystem by requesting thumbnails and extracting the embedded text.

The attack surface is significant: any Electron application that has a sandboxed renderer and processes untrusted content (e.g., a chat app that renders messages from strangers, an email client, a browser) can be exploited. The renderer, once compromised via XSS or deliberate malicious package, can enumerate file paths and exfiltrate their contents through the thumbnail channel.

The root cause is a missing access control check between the renderer process and the main process. The API does not verify that the requesting renderer has legitimate access to the file path being requested, nor does it restrict the API's availability to sandboxed contexts. The variable path traversal and file reading capability effectively breaks the sandbox's promise of isolation.

Two documented workarounds exist: enabling contextIsolation in the application, which makes exploitation significantly more difficult (though not impossible), and disabling the createThumbnailFromPath API entirely if not needed.


Exploitation Scenarios

Scenario 1: Malicious Third-Party Package

  1. Reconnaissance: An attacker crafts a malicious npm package or Electron plugin that appears benign. The package is distributed through legitimate channels (npm registry, GitHub) and includes a post-install script or runtime code that exploits the vulnerability.

  2. Trigger: Once a developer or user installs the malicious package within an Electron application, the renderer process runs the malicious code. The attacker leverages the createThumbnailFromPath API to generate thumbnails of sensitive files.

  3. Payload/Execution: The attacker enumerates common sensitive file paths (e.g., /etc/passwd, ~/.ssh/id_rsa, ~/.aws/credentials, project .env files). For each path, the attacker calls createThumbnailFromPath with a large thumbnail size to maximize the text extracted into the image. The returned image is transmitted to an attacker-controlled server via any network channel available to the renderer (e.g., fetch to an external URL).

  4. Post-Exploitation: The attacker parses the received images to recover textual content, potentially yielding credentials, access keys, source code, or other sensitive data that can be used for lateral movement or further compromise.

Scenario 2: Compromised Web Content in Electron App

  1. Reconnaissance: An Electron application loads remote content (e.g., a chat application displaying messages, a document viewer fetching remote files). The attacker identifies the Electron version and confirms the sandbox is enabled but contextIsolation is disabled.

  2. Trigger: The attacker delivers a malicious payload through the application's content channel (e.g., a specially crafted message, a malicious HTML file, or a phishing link opened within the Electron app). This payload executes JavaScript in the renderer context.

  3. Payload/Execution: The malicious JavaScript enumerates likely sensitive file paths and invokes the vulnerable API. The thumbnail images are encoded and sent back to the attacker via a webhook or HTTP exfiltration endpoint.

  4. Post-Exploitation: The attacker gains access to local file content, enabling credential harvesting, source code theft, or configuration data extraction that could facilitate deeper compromise of the user's system or associated remote services.

Important note: No public PoC is available for this CVE, and the attack chain is inferred from the vulnerability class and NVD description. The specific thumbnail extraction quality and success rate may vary by file type and content.


Impact Assessment

The business impact of CVE-2021-39184 is primarily confidentiality-related. The CVSS vector string is CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N, indicating:

  • Attack Vector (AV:L): Local — the attacker must already have code execution in the renderer or convince a user to run untrusted content.
  • Attack Complexity (AC:L): Low — no special conditions beyond having access to the vulnerable API.
  • Privileges Required (PR:N): None — the sandboxed renderer operates without elevated privileges.
  • User Interaction (UI:R): Required — the user must perform some action (open a malicious file, install a package, or interact with malicious web content).
  • Confidentiality (C:H): High — arbitrary file contents can be disclosed.
  • Integrity (I:N) and Availability (A:N): None — no data modification or availability impact.

The overall CVSS v3 score of 6.8 (Medium) reflects the significant confidentiality impact tempered by the requirement for local access and user interaction.

The blast radius is substantial. Electron is one of the most widely used cross-platform desktop application frameworks, powering thousands of commercial and open-source applications. Any organization using a vulnerable Electron-based application — including popular tools like Slack, Discord, Visual Studio Code, and many internal enterprise applications — is potentially exposed. The worst-case scenario involves an attacker reading arbitrary files from development workstations, potentially exposing source code, API keys, SSH private keys, and other sensitive data.

The EPSS score of 0.01050 with a 61.2th percentile ranking indicates that while not among the most actively exploited CVEs, there is meaningful real-world exploitation interest. The CISA KEV listing does not include this CVE, suggesting no confirmed nation-state or high-profile exploitation campaigns to date.


Detection Guidance

Sigma Rule

title: Electron Sandboxed Renderer Thumbnail API Abuse
id: 8b7a3d89-1f2e-4a6b-8c9d-2e5f4a1b3c6d
status: experimental
description: Detects suspicious use of Electron's createThumbnailFromPath API from sandboxed renderer processes, indicating potential arbitrary file read attempts.
author: Valtersit Threat Intelligence
date: 2024/01/15
tags:
    - attack.collection
    - attack.t1119
    - cve.2021-39184
logsource:
    category: process_creation
    product: windows
detection:
    selection_electron:
        Image|endswith:
            - '\electron.exe'
            - '\electron_helper.exe'
    selection_thumbnail:
        CommandLine|contains:
            - 'createThumbnailFromPath'
            - 'nativeImage'
    selection_sensitive_paths:
        CommandLine|contains:
            - '\.ssh'
            - '\.aws'
            - '\.env'
            - 'passwd'
            - 'credentials'
    condition: selection_electron and selection_thumbnail and selection_sensitive_paths
level: high
falsepositives:
    - Legitimate file preview functionality in Electron-based file managers

YARA Rule

rule Electron_Thumbnail_API_Abuse
{
    meta:
        author = "Valtersit Threat Intelligence"
        description = "Detects Electron JS code containing abusive createThumbnailFromPath patterns"
        cve = "CVE-2021-39184"
        date = "2024-01-15"
        severity = "high"
    strings:
        $api = "createThumbnailFromPath" ascii wide
        $sensitive1 = ".ssh" ascii wide
        $sensitive2 = ".aws" ascii wide
        $sensitive3 = ".env" ascii wide
        $sensitive4 = "/etc/passwd" ascii wide
        $sensitive5 = "credentials" ascii wide
        $exfil = /fetch\(|XMLHttpRequest|WebSocket|sendBeacon/ ascii
        $loop = "for" ascii wide
        $array = /\[\s*['\"][^'\"]+['\"]\s*,\s*['\"]/ ascii
    condition:
        uint16(0) == 0x5A4D and // MZ header for PE files
        $api and 2 of ($sensitive*) and $exfil and ($loop or $array)
}

Suricata IDS Rule

alert http any any -> any any (msg:"ELECTRON CVE-2021-39184 Thumbnail API Exploitation Attempt"; flow:established,to_server; content:"createThumbnailFromPath"; nocase; http.request_body; content:".ssh"; nocase; http.request_body; content:".aws"; nocase; http.request_body; content:".env"; nocase; http.request_body; content:"/etc/passwd"; nocase; http.request_body; sid:2024031501; rev:1; metadata:attack_target_Client_Endpoint, created_at_2024_01_15, cve_CVE-2021-39184, deployment_Perimeter, former_category_POTENTIALLY_POLITICAL, signature_severity_Major, tag_Exploitation, tag_CVE-2021-39184;)

Elastic Detection

// EQL query to detect suspicious IPC messages related to thumbnail generation
sequence by process.entity_id
  [process where event.action == "start" and process.name : "electron*"]
  [any where event.action == "ipc_message" and message.content : "*createThumbnailFromPath*"]
  [network where event.action == "connect" and message.content : "*ssh*" or message.content : "*aws*" or message.content : "*env*"]

Splunk SPL Query

index=main source="WinEventLog:Security" OR source="ProcessCreation"
| where process_name IN ("electron.exe", "electron_helper.exe")
| rename CommandLine as cmdline
| search cmdline="*createThumbnailFromPath*"
| eval suspicious_paths = case(
    cmdline LIKE "%.ssh%", "SSH_KEY",
    cmdline LIKE "%.aws%", "AWS_CREDENTIALS",
    cmdline LIKE "%.env%", "ENV_FILE",
    cmdline LIKE "%/etc/passwd%", "SYSTEM_FILE",
    cmdline LIKE "%credentials%", "CREDENTIALS"
  )
| where suspicious_paths IS NOT NULL
| table _time, user, host, process_name, cmdline, suspicious_paths
| sort - _time

Wazuh OSSEC Rule

<group name="electron,">
  <rule id="100201" level="12">
    <if_sid>510</if_sid>
    <match>createThumbnailFromPath</match>
    <regex>\.ssh|\.aws|\.env|/etc/passwd|credentials</regex>
    <description>Electron CVE-2021-39184: Potential arbitrary file read via thumbnail API</description>
    <mitre>
      <id>T1119</id>
    </mitre>
    <group>cve,2021,39184</group>
  </rule>
</group>

Mitigation & Patch Guidance

Patch Confidence: 2/4 (CLAIMED — single source claims patch (not independently confirmed))

Immediate Mitigations (No Patch)

  1. Disable the createThumbnailFromPath API: If the application does not require file thumbnail functionality, disable this API entirely. This can be done by patching the Electron main process code to reject all calls to this API, or by removing the native module that provides it.

  2. Enable contextIsolation: Set contextIsolation: true in the webPreferences of all BrowserWindow instances. This isolates the renderer's execution context from the main process and makes exploitation significantly more difficult, although the vendor notes it does not fully eliminate the risk.

  3. Disable nodeIntegration: Ensure nodeIntegration: false is set for all renderers to limit the APIs available to renderer processes.

  4. Restrict file access: If the application cannot disable the thumbnail API, consider running it within a container or using OS-level sandboxing (e.g., AppArmor, SELinux) to restrict the file paths accessible to the main process.

  5. Network egress monitoring: Monitor for unexpected network connections from Electron applications, particularly those that may be exfiltrating thumbnail images.

Patch/Upgrade Steps

  1. Immediate: Upgrade to one of the patched versions: 15.0.0-alpha.10, 14.0.0, 13.3.0, 12.1.0, or 11.5.0.

    • For applications using Electron 13.x: upgrade to 13.3.0 or later.
    • For applications using Electron 12.x: upgrade to 12.1.0 or later.
    • For applications using Electron 11.x: upgrade to 11.5.0 or later.
  2. For applications using earlier Electron versions: Upgrade to the highest available patched version compatible with the application's dependencies.

  3. For Electron-based application developers: Audit all dependencies to ensure the bundled Electron version is patched. Rebuild and re-release the application with the patched Electron binary.

  4. Verify the patch: Confirm the vulnerability is fixed by testing that createThumbnailFromPath no longer works from a sandboxed renderer context with arbitrary paths.

Long-Term Hardening

  1. Implement capability-based IPC: Restrict the IPC surface between renderer and main processes. Only allow specific, validated IPC messages and apply allowlisting to file paths.

  2. Adopt the principle of least privilege: Run Electron applications with the minimum required OS-level privileges. Use OS feature isolation (e.g., Windows AppContainer, macOS sandbox-exec, Linux namespaces).

  3. Security review of native modules: Carefully review and audit any third-party modules or packages bundled into Electron applications, as the supply chain is the primary attack vector for this vulnerability.

  4. Continuous monitoring: Subscribe to Electron security advisories and incorporate automated dependency scanning into CI/CD pipelines to catch future vulnerabilities early.

  5. User education: Educate users on the risks of installing untrusted packages and opening untrusted content within Electron-based applications.

  6. Maintain an asset inventory: Track which Electron applications are used in the organization and their versions to facilitate rapid patching when future vulnerabilities are disclosed.


References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2021-39184 — Official NVD record containing the vulnerability description and CVSS score.

  2. Electron Security Advisory: https://github.com/electron/electron/security/advisories — GitHub Advisory page for the Electron project, containing details on the fix and affected versions.

  3. Electron Releases: https://releases.electronjs.org/ — Official Electron release notes confirming version 15.0.0-alpha.10, 14.0.0, 13.3.0, 12.1.0, and 11.5.0 contain the fix.

  4. GitHub Security Lab Research: https://github.com/github/securitylab — Prior research on sandbox escape and renderer vulnerabilities in Electron, providing context on the security impact of bypassing the sandbox boundary.

  5. EPSS Data: https://www.first.org/epss/ — FIRST EPSS scoring provides the likelihood of exploitation in the wild (0.01050, 61.2 percentile).

Threat Actor Campaigns: No known nation-state or criminal threat actor campaigns have been publicly attributed to CVE-2021-39184. The CVE is not listed in CISA's Known Exploited Vulnerabilities catalog. The vulnerability is assessed as low-to-moderate exploitation risk given the local attack vector and user interaction requirements, though the widespread use of Electron ensures ongoing monitoring interest.

👁️ 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.

electron createThumbnailFromPath
electron nativeImage thumbnail vulnerability
electron app sandboxed renderer
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2021-39184/ · 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.