Electron — это платформа для написания кроссплатформенных настольных приложений с использованием JavaScript, HTML и CSS. До версий 38.8.6, 39.8.1, 40.8.0 и 41.0.0-beta.8 в Windows app.setLoginItemSettings({openAtLogin: true}) записывал путь к исполняемому файлу к разделу реестра «Выполнить» без кавычек. Если приложение установлено по пути, содержащему пробелы, злоумышленник с доступом на запись в родительский каталог может запустить при входе в систему другой исполняемый файл вместо предполагаемого приложения.
При установке Windows по умолчанию стандартные системные каталоги защищены от записи обычными пользователями, поэтому для эксплуатации обычно требуется нестандартное место установки. Эта проблема исправлена в версиях 38.8.6, 39.8.1, 40.8.0 и 41.0.0-beta.8.
Показать оригинальное описание (EN)
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.0, and 41.0.0-beta.8, on Windows, app.setLoginItemSettings({openAtLogin: true}) wrote the executable path to the Run registry key without quoting. If the app is installed to a path containing spaces, an attacker with write access to an ancestor directory may be able to cause a different executable to run at login instead of the intended app. On a default Windows install, standard system directories are protected against writes by standard users, so exploitation typically requires a non-standard install location. This issue has been patched in versions 38.8.6, 39.8.1, 40.8.0, and 41.0.0-beta.8.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 16
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:*:*:*:*:*:node.js:*:*
|
— |
38.8.6
|
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:*:*:*:*:*:node.js:*:*
|
39.0.0
|
39.8.1
|
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:*:*:*:*:*:node.js:*:*
|
40.0.0
|
40.8.0
|
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha1:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha2:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha3:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha4:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha5:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:alpha6:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta1:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta2:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta3:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta4:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta5:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta6:*:*:*:node.js:*:*
|
— | — |
|
Electronjs Electron
cpe:2.3:a:electronjs:electron:41.0.0:beta7:*:*:*:node.js:*:*
|
— | — |