Skip to content

electron-updater Code Signing Bypass on Windows

High severity GitHub Reviewed Published Jul 9, 2024 in electron-userland/electron-builder • Updated Jul 12, 2024

Package

electron-updater (npm)

Affected versions

<= 6.3.0-alpha.5

Patched versions

6.3.0-alpha.6

Description

Observations

The file packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts implements the signature validation routine for Electron applications on Windows. It executes the following command in a new shell (process.env.ComSpec on Windows, usually C:\Windows\System32\cmd.exe):

https://github.com/electron-userland/electron-builder/blob/140e2f0eb0df79c2a46e35024e96d0563355fc89/packages/electron-updater/src/windowsExecutableCodeSignatureVerifier.ts#L35-L41

Because of the surrounding shell, a first pass by cmd.exe expands any environment variable found in command-line above.

Exploitation

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.

Impact

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.).

Patch

This vulnerability was patched in #8295, by comparing the path in the output of Get-AuthenticodeSignature with the intended one. The patch is available starting from 6.3.0-alpha.6.

References

Published to the GitHub Advisory Database Jul 9, 2024
Reviewed Jul 9, 2024
Published by the National Vulnerability Database Jul 9, 2024
Last updated Jul 12, 2024

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H

CVE ID

CVE-2024-39698

GHSA ID

GHSA-9jxc-qjr9-vjxq

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.