Electron is a framework for writing cross-platform desktop applications using JavaScript, HTML and CSS. Prior to versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0, a service worker running in a session could spoof reply messages on the internal IPC channel used by webContents.executeJavaScript() and related methods, causing the main-process promise to resolve with attacker-controlled data. Apps are only affected if they have service workers registered and use the result of webContents.executeJavaScript() (or webFrameMain.executeJavaScript()) in security-sensitive decisions. This issue has been patched in versions 38.8.6, 39.8.1, 40.8.1, and 41.0.0.
This attack-focused weakness is caused by incorrectly implemented authentication schemes that are subject to spoofing attacks.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Electron | Electronjs | * | 38.8.6 (excluding) |
| Electron | Electronjs | 39.0.0 (including) | 39.8.1 (excluding) |
| Electron | Electronjs | 40.0.0 (including) | 40.8.1 (excluding) |
| Electron | Electronjs | 41.0.0-alpha1 (including) | 41.0.0-alpha1 (including) |
| Electron | Electronjs | 41.0.0-alpha2 (including) | 41.0.0-alpha2 (including) |
| Electron | Electronjs | 41.0.0-alpha3 (including) | 41.0.0-alpha3 (including) |
| Electron | Electronjs | 41.0.0-alpha4 (including) | 41.0.0-alpha4 (including) |
| Electron | Electronjs | 41.0.0-alpha5 (including) | 41.0.0-alpha5 (including) |
| Electron | Electronjs | 41.0.0-alpha6 (including) | 41.0.0-alpha6 (including) |
| Electron | Electronjs | 41.0.0-beta1 (including) | 41.0.0-beta1 (including) |
| Electron | Electronjs | 41.0.0-beta2 (including) | 41.0.0-beta2 (including) |
| Electron | Electronjs | 41.0.0-beta3 (including) | 41.0.0-beta3 (including) |
| Electron | Electronjs | 41.0.0-beta4 (including) | 41.0.0-beta4 (including) |
| Electron | Electronjs | 41.0.0-beta5 (including) | 41.0.0-beta5 (including) |
| Electron | Electronjs | 41.0.0-beta6 (including) | 41.0.0-beta6 (including) |
| Electron | Electronjs | 41.0.0-beta7 (including) | 41.0.0-beta7 (including) |
| Electron | Electronjs | 41.0.0-beta8 (including) | 41.0.0-beta8 (including) |