Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local unprivileged access to macOS host
-
DeliveryStage symlink/path swap on target bundle
-
ExploitTrigger Squirrel.Mac auto-update (ShipIt as root)
-
ExecutionWin TOCTOU race re-resolving target path
-
PersistRoot helper overwrites arbitrary app bundle
-
ImpactPrivilege escalation / code execution as root
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture TOCTOU prevention
|
| Exploitation Conditions | Exploitation requires ALL of: (1) macOS as the platform; (2) the Electron app must ship Squirrel.Mac-based auto-updates - apps not using Squirrel.Mac or on other OSes are unaffected; (3) local access to the machine as an existing user (PR:L); (4) an update install must occur so the privileged ShipIt helper runs as root (UI:R); and (5) winning a TOCTOU race window (AC:H) to swap the target bundle path between validation and the root-privileged write. There is no app-side workaround - only upgrading Electron to 39.8.10, 41.10.5, or 42.0.0-beta.2 remediates it. These prerequisites (local + macOS + Squirrel.Mac + race) sharply limit realistic exploitation despite the high impact. |
| Impact | This is a genuine local privilege-escalation issue but not an urgent remote-exploitation priority. The CVSS 3.1 vector (AV:L/AC:H/PR:L/UI:R/S:U) confirms local-only access, high attack complexity (a TOCTOU race per CWE-367), an already-authenticated low-privileged local user, and required user interaction (an update must be initiated). The 6.7 base score is driven entirely by the C:H/I:H/A:H impacts, which follow logically from a root-privileged helper (ShipIt) being coerced into overwriting an arbitrary application's files - a strong integrity/privesc primitive that can cascade to code execution and thus confidentiality and availability. No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so this is no public exploit identified at time of analysis. The high attack complexity (winning a race window) plus the local + macOS-only + Squirrel.Mac-auto-update prerequisites substantially narrow real-world exploitability versus the raw score. The CVSS vector is internally consistent with the description (both indicate local access), so no signal conflict is present; the main caveat is that the 'Information Disclosure' tag does not match the actual impact (arbitrary root file overwrite is primarily an integrity/privesc issue). |
| Exploit ScenarioDerived | A local low-privileged user on a shared or already-compromised Mac stages a malicious symlink/path condition and triggers (or waits for) a Squirrel.Mac auto-update of an Electron app. Because the root ShipIt helper re-resolves the untrusted target bundle path from the on-disk request during the install, the attacker wins the race and redirects the root-privileged file write to a different application's bundle, achieving privilege escalation. No public exploit is identified, and success depends on winning a TOCTOU race window (AC:H). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 29, 2026
A local time-of-check-to-time-of-use (TOCTOU) race condition in Electron's bundled Squirrel.Mac auto-update framework on macOS allows an attacker who already has local access to the machine to redirect the privileged ShipIt helper into overwriting a different application's files with root privileges during an update install. Only macOS Electron apps that ship Squirrel.Mac-based auto-updates are exposed; apps on other platforms, or that do not use Squirrel.Mac, are unaffected. The attacker is an authenticated local user (CVSS PR:L) and must win a narrow race window between path validation and the root-privileged write (AC:H) while an update is actually being installed (UI:R), yielding high confidentiality, integrity, and availability impact if successful; no public exploit code exists and there is no confirmed active exploitation (no CISA KEV listing), and no app-side workaround exists - remediation requires upgrading Electron to 39.8.10, 41.10.5, or 42.0.0-beta.2.
RemediationAI
Vendor-released patches are available: upgrade Electron to 39.8.10 (for the 39.x line), 41.10.5 (for the 41.x line), or 42.0.0-beta.2 (for the 42.x line), per advisory GHSA-vv43-5jgx-7qv8 and upstream PR https://github.com/electron/electron/pull/50745. Electron explicitly states there are no application-side workarounds for this issue, so downstream app vendors must ship a rebuild against a fixed Electron version; if that is not immediately possible, the practical compensating control is to disable Squirrel.Mac-based auto-updates in the affected macOS app and deliver updates out-of-band (manual download/MDM/enterprise software distribution), accepting the operational trade-off of slower, user-driven update latency and loss of silent background updating. Because the attack requires local code execution as an existing user on the host and an update install to trigger the root helper, restricting interactive macOS login and local process execution to trusted users reduces exposure but does not eliminate the flaw and is not a substitute for upgrading. The upstream fix additionally hardens the privileged path by refusing any install whose resolved target bundle is not the .app containing the installer, so once patched, even a manipulated on-disk install request will be rejected rather than performed as root.
Affected VersionsENISA
Affected Packages
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 ships a forked copy of the Squirrel.Mac auto-update framework, whose privileged ShipIt helper performs the final install step as root. The vulnerable code (SQRLInstaller.m) reads a serialized install request from an on-disk state file and re-evaluates the targetBundleURL at multiple points in the install signal chain instead of resolving it once. Because the serialized target path is attacker-influenced and not canonicalized or pinned to the bundle that actually launched the installer, a local attacker can exploit the gap between the validation of that path and the subsequent root-privileged file write - the classic CWE-367 time-of-check-to-time-of-use pattern - including via symbolic-link path traversal (Apple platform tag). The upstream fix (PR #50745, commits 01faabfc, 15e2928a, a0f9ff4c, b8f25c4c) resolves the target bundle URL to a canonical, symlink-free path exactly once at the start of installRequest:, rejects requests whose path is not already canonical, threads the resolved URL through every downstream step so validation and the write operate on the same location, and - critically - adds a privilege check when geteuid() == 0 that derives the expected target from _NSGetExecutablePath/realpath and refuses any install whose canonical target is not the .app bundle containing the running installer. The write side in SQRLUpdater.m was also changed to serialize a symlink-resolved bundle URL so the request always carries a canonical path. Note that the real-world attacker benefit here is an overwrite of another app's files as root rather than an inherent code-execution primitive, but overwriting root-owned files of a privileged application can be chained into privilege escalation.
Know when macOS 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:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Local access only (AV:L) by an existing user (PR:L); winning a TOCTOU race and an active update flow give AC:H and UI:R; root file overwrite yields full C/I/A:H.
Primary rating from Vendor (https://github.com/electron/electron).
CVSS VectorVendor: https://github.com/electron/electron
DescriptionCVE.org
Impact
On macOS, Electron bundles the Squirrel.Mac auto-update framework, whose privileged ShipIt helper performs the final step of an update as root. A local attacker could cause that helper to overwrite a different application's files, as root, instead of the app that started the update. Exploitation requires local access to the machine.
Apps are only affected on macOS if they ship Squirrel.Mac-based auto-updates. Apps on other platforms, or that do not use Squirrel.Mac auto-updates, are not affected.
Workarounds
There are no app side workarounds, you must update to a patched version of Electron.
Fixed Versions
42.0.0-beta.241.10.539.8.10
For more information
If you have any questions or comments about this advisory, email us at [security@electronjs.org](mailto:security@electronjs.org)
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.
An unauthenticated remote code execution vulnerability exists in Remote for Mac, a macOS remote control utility develope
Out-of-bounds write in Apple's iOS, iPadOS, and macOS file-parsing code lets remote attackers achieve arbitrary code exe
Apple's kernel across all platforms (iOS, macOS, watchOS, visionOS, tvOS) contains a memory corruption vulnerability (CV
The issue was addressed with improved checks. Rated high severity (CVSS 7.0). Actively exploited in the wild (cisa kev)
A logic issue was addressed with improved restrictions. Rated high severity (CVSS 7.8), this vulnerability is no authent
In Sudo before 1.9.12p2, the sudoedit (aka -e) feature mishandles extra arguments passed in the user-provided environmen
A race condition was addressed with additional validation. Rated high severity (CVSS 7.0), this vulnerability is no auth
This issue was addressed with improved checks. Rated critical severity (CVSS 10.0), this vulnerability is remotely explo
A carefully crafted request body can cause a buffer overflow in the mod_lua multipart parser (r:parsebody() called from
Vasion Print (formerly PrinterLogic) Virtual Appliance Host versions prior to 22.0.893 and Application versions prior to
Cross-Site Request Forgery (CSRF) vulnerability in Laundry on Linux, MacOS allows to perform an Account Takeover. This i
A vulnerability was found in LibTIFF. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, no aut
EUVD-2026-98837
GHSA-vv43-5jgx-7qv8
NVD
CVE.org
EPSS
Exploit-DB