CVE-2024-39698

electron-updater allows for automatic updates for Electron apps. The file `packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts` implements the signature validation routine for Electron applications on Windows. Because of the surrounding shell, a first pass by `cmd.exe` expands any environment variable found in command-line above. This creates a situation where `verifySignature()` can be tricked into validating the certificate of a different file than the one that was just downloaded. If the step is successful, the malicious update will be executed even if its signature is invalid. This attack assumes a compromised update manifest (server compromise, Man-in-the-Middle attack if fetched over HTTP, Cross-Site Scripting to point the application to a malicious updater server, etc.). The patch is available starting from 6.3.0-alpha.6.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:electron:electron-builder:*:*:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha0:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha1:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha2:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha3:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha4:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha5:*:*:*:node.js:*:*

History

21 Nov 2024, 09:28

Type Values Removed Values Added
References () https://github.com/electron-userland/electron-builder/blob/140e2f0eb0df79c2a46e35024e96d0563355fc89/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts#L35-L41 - Product () https://github.com/electron-userland/electron-builder/blob/140e2f0eb0df79c2a46e35024e96d0563355fc89/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts#L35-L41 - Product
References () https://github.com/electron-userland/electron-builder/commit/ac2e6a25aa491c1ef5167a552c19fc2085cd427f - Patch () https://github.com/electron-userland/electron-builder/commit/ac2e6a25aa491c1ef5167a552c19fc2085cd427f - Patch
References () https://github.com/electron-userland/electron-builder/pull/8295 - Issue Tracking, Patch () https://github.com/electron-userland/electron-builder/pull/8295 - Issue Tracking, Patch
References () https://github.com/electron-userland/electron-builder/security/advisories/GHSA-9jxc-qjr9-vjxq - Exploit, Vendor Advisory () https://github.com/electron-userland/electron-builder/security/advisories/GHSA-9jxc-qjr9-vjxq - Exploit, Vendor Advisory

12 Jul 2024, 17:06

Type Values Removed Values Added
References () https://github.com/electron-userland/electron-builder/blob/140e2f0eb0df79c2a46e35024e96d0563355fc89/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts#L35-L41 - () https://github.com/electron-userland/electron-builder/blob/140e2f0eb0df79c2a46e35024e96d0563355fc89/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts#L35-L41 - Product
References () https://github.com/electron-userland/electron-builder/commit/ac2e6a25aa491c1ef5167a552c19fc2085cd427f - () https://github.com/electron-userland/electron-builder/commit/ac2e6a25aa491c1ef5167a552c19fc2085cd427f - Patch
References () https://github.com/electron-userland/electron-builder/pull/8295 - () https://github.com/electron-userland/electron-builder/pull/8295 - Issue Tracking, Patch
References () https://github.com/electron-userland/electron-builder/security/advisories/GHSA-9jxc-qjr9-vjxq - () https://github.com/electron-userland/electron-builder/security/advisories/GHSA-9jxc-qjr9-vjxq - Exploit, Vendor Advisory
Summary
  • (es) electron-updater permite actualizaciones automáticas para las aplicaciones de Electron. El archivo `packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts` implementa la rutina de validación de firmas para aplicaciones Electron en Windows. Debido al shell circundante, un primer paso por `cmd.exe` expande cualquier variable de entorno que se encuentre en la línea de comandos anterior. Esto crea una situación en la que se puede engañar a `verifySignature()` para que valide el certificado de un archivo diferente al que se acaba de descargar. Si el paso tiene éxito, la actualización maliciosa se ejecutará incluso si su firma no es válida. Este ataque supone un manifiesto de actualización comprometido (compromiso del servidor, ataque Man-in-the-Middle si se obtiene a través de HTTP, Cross Site Scripting para apuntar la aplicación a un servidor de actualización malicioso, etc.). El parche está disponible a partir de 6.3.0-alpha.6.
CPE cpe:2.3:a:electron:electron-builder:6.3.0:alpha1:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha0:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha2:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha5:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:*:*:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha4:*:*:*:node.js:*:*
cpe:2.3:a:electron:electron-builder:6.3.0:alpha3:*:*:*:node.js:*:*
CWE CWE-295
First Time Electron electron-builder
Electron

09 Jul 2024, 18:18

Type Values Removed Values Added
New CVE

Information

Published : 2024-07-09 18:15

Updated : 2024-11-21 09:28


NVD link : CVE-2024-39698

Mitre link : CVE-2024-39698

CVE.ORG link : CVE-2024-39698


JSON object : View

Products Affected

electron

  • electron-builder
CWE
CWE-154

Improper Neutralization of Variable Name Delimiters

CWE-295

Improper Certificate Validation