Safeguard
Application Security•

Electron's September 2026 Advisories and the Chromium Backport Gap

Electron disclosed a custom-scheme CORS bypass and a preload cache poisoning bug on 29 Sept. Meanwhile 44.x ships Chromium 152 while Chrome is on 155.

Safeguard Security Team
5 min read

On 29 September 2026, Electron published two security advisories. CVE-2026-102675 lets responses from certain custom protocol handlers be read across origins, and it finishes the fix for an August bug, CVE-2026-70604. CVE-2026-102677 lets a compromised renderer poison the sandboxed preload code cache and run its code in the more privileged preload context.

Both are fixed in current releases. The harder question for teams shipping Electron apps is how to keep up with the Chromium side. Through September and October, Electron 44 shipped on Chromium 152 while desktop Chrome moved to 155, and Electron's release notes describe Chromium security work as "Backported fixes" without listing CVE IDs.

What's affected

CVE-2026-102675 (GHSA-j84w-jfhq-vhvj, CVSS 7.4). Affects apps that register a custom scheme with supportFetchAPI enabled but corsEnabled disabled, serve it through protocol.registerFileProtocol or protocol.registerHttpProtocol, and load untrusted content in the same session. Fixed in 41.10.6, 42.9.2, 43.4.1 and 44.0.0-beta.5.

CVE-2026-102677 (GHSA-qmv3-fv6v-rmhq, CVSS 7.8). Electron's sandboxed preload code cache "did not verify that a cached entry matched the preload it was served for." Affects versions from 42.3.3 up to the fixes in 42.10.0, 43.5.0 and 44.0.0-beta.6, and only matters for apps that load untrusted content.

Chromium baselines. Electron supports the latest three stable majors. Here is what each shipped during the window, from Electron's release index:

LineLatest release (date)Chromium
4444.9.0 (17 Oct)152.0.7977.167
4343.8.0 (16 Oct)150.0.7871.250
4242.11.15 (15 Oct)148.0.7778.280

The 43 and 42 lines kept the same Chromium version string for every release since 31 August. Security fixes still land in those lines, as backports. The 44.x release notes alone carry "Backported fixes from upstream" entries in eight releases between 4 September and 15 October, covering ANGLE, Chromium, Dawn, PDFium, Skia, V8 and WebRTC.

Several 44.x releases also fixed Electron's own security-relevant behavior:

  • 44.1.1: chrome.tabs.query() returned tab URLs and titles to extensions without the tabs permission or host access.
  • 44.3.0: File System Access grants are now scoped to the requesting document and reset when the origin's last page closes.
  • 44.4.0: Fixed the browser-side check that blocks drag and drop between cross-site frames of the same page, which had been disabled.
  • 44.9.0: Fixed link-opened windows not using the opener's session and webPreferences. Also fixed in 42, 43 and 45.

How to check if you're exposed

Find the Electron version each app builds with:

npm ls electron
# or, in a monorepo
grep -rn '"electron":' --include=package.json . | grep -v node_modules

Inside a running app, log the real runtime versions:

console.log(process.versions.electron, process.versions.chrome);

Then look for the risky pattern behind CVE-2026-102675:

grep -rnE "registerSchemesAsPrivileged|supportFetchAPI|corsEnabled|registerFileProtocol|registerHttpProtocol" src/ app/ 2>/dev/null

If a scheme has supportFetchAPI: true without corsEnabled: true, and any window in that session loads remote content, you are in the affected configuration until you upgrade.

What to do now

  1. Upgrade to the latest patch of a supported line: 44.9.0, 43.8.0 or 42.11.15 as of 17 October. All three are past both advisories' fixed versions.
  2. Move off Electron 41 and older. Only the latest three majors get backports.
  3. Separate sessions. Load remote or untrusted content in its own session partition, never the one that serves privileged custom schemes.
  4. Prefer protocol.handle over registerFileProtocol and registerHttpProtocol, which Electron's docs mark as deprecated since version 25, and register schemes with only the privileges they need.
  5. Ship on a schedule. Chromium backports arrive roughly weekly. An app that releases quarterly is carrying months of known browser bugs.

You can drop a package.json into the free scan at gold.safeguard.sh/scan to see your Electron version and any advisories against it. It runs in your browser and the file never leaves your machine.

Why it matters

An Electron app is a browser you ship, plus Node.js, plus your own IPC surface. The Chromium version string is a weak signal of patch status, because Electron backports fixes without bumping it. A check that compares process.versions.chrome against Chrome advisories will flag bugs that Electron has already backported. The Electron release number is the thing to track.

The two September advisories are also a reminder that most Electron risk is configuration. Both only matter when untrusted content runs next to privileged features. Keeping those apart is a design decision you make once, and it limits the damage of the next bug.

Try it yourself

Pick one Electron app you ship. Record its Electron version, its Chromium version, and the date of that Electron release. Then list every session it creates and what content each one loads. Mark any session that mixes remote pages with custom schemes or a preload that exposes Node features.

Click through it at your own pace, or open it full screen.

Quick check

Your app runs Electron 43.8.0, which reports Chromium 150.0.7871.250. Is it missing three months of Chromium fixes?

Not necessarily. Electron backports Chromium security fixes into supported lines without changing the Chromium version string. Track the Electron release, not the Chromium number.

Which configuration does CVE-2026-102675 need?

A custom scheme registered with supportFetchAPI enabled and corsEnabled disabled, served by registerFileProtocol or registerHttpProtocol, with untrusted content loaded in the same session.

Is an app on Electron 42.2.0 affected by CVE-2026-102677?

No. The advisory says the issue was introduced in 42.3.3. But 42.2.0 is still affected by CVE-2026-102675, which was fixed in 42.9.2, so upgrade anyway.

Sources

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.