Skip to main content

CVE-2023-30585: Vulnerability in NodeJS Node

High
VulnerabilityCVE-2023-30585cvecve-2023-30585
Published: Tue Nov 28 2023 (11/28/2023, 01:23:08 UTC)
Source: CVE
Vendor/Project: NodeJS
Product: Node

Description

A vulnerability has been identified in the Node.js (.msi version) installation process, specifically affecting Windows users who install Node.js using the .msi installer. This vulnerability emerges during the repair operation, where the "msiexec.exe" process, running under the NT AUTHORITY\SYSTEM context, attempts to read the %USERPROFILE% environment variable from the current user's registry. The issue arises when the path referenced by the %USERPROFILE% environment variable does not exist. In such cases, the "msiexec.exe" process attempts to create the specified path in an unsafe manner, potentially leading to the creation of arbitrary folders in arbitrary locations. The severity of this vulnerability is heightened by the fact that the %USERPROFILE% environment variable in the Windows registry can be modified by standard (or "non-privileged") users. Consequently, unprivileged actors, including malicious entities or trojans, can manipulate the environment variable key to deceive the privileged "msiexec.exe" process. This manipulation can result in the creation of folders in unintended and potentially malicious locations. It is important to note that this vulnerability is specific to Windows users who install Node.js using the .msi installer. Users who opt for other installation methods are not affected by this particular issue.

AI-Powered Analysis

AILast updated: 06/25/2025, 14:02:45 UTC

Technical Analysis

CVE-2023-30585 is a vulnerability affecting the Node.js installation process on Windows systems when using the .msi installer. The issue occurs specifically during the repair operation of the Node.js installation, where the Windows Installer service (msiexec.exe) runs under the highly privileged NT AUTHORITY\SYSTEM context. During this process, msiexec.exe attempts to read the %USERPROFILE% environment variable from the current user's registry hive. The vulnerability arises if the path referenced by %USERPROFILE% does not exist. In such cases, msiexec.exe attempts to create the missing directory path. However, this creation is performed in an unsafe manner, potentially allowing the creation of arbitrary folders in arbitrary locations on the filesystem. The root cause is that the %USERPROFILE% environment variable in the Windows registry can be modified by standard, non-privileged users. This means that an unprivileged user or a malicious process (such as malware or a trojan) can manipulate the registry key to point %USERPROFILE% to a location of their choosing. When the privileged msiexec.exe process runs the repair operation, it will then create folders at these attacker-controlled locations with SYSTEM privileges. This behavior can lead to privilege escalation or persistence mechanisms by allowing attackers to place files or folders in sensitive locations with elevated permissions. This vulnerability is limited to Windows users who install Node.js via the .msi installer; other installation methods (such as zip packages, nvm, or other installers) are not affected. The affected Node.js versions span from 4.0 through 20.0, covering a broad range of currently supported and legacy versions. As of the publication date, there are no known exploits in the wild. No official patches or mitigations have been linked yet, and the vulnerability was reserved and published in 2023. The vulnerability does not have a CVSS score assigned at this time.

Potential Impact

For European organizations, this vulnerability poses a risk primarily in environments where Node.js is installed on Windows systems using the .msi installer. Since msiexec.exe runs with SYSTEM privileges, exploitation could allow an unprivileged user or malware to create folders with elevated privileges in arbitrary locations. This can facilitate privilege escalation, unauthorized persistence, or the planting of malicious payloads that could be executed later by privileged processes or users. The impact on confidentiality is moderate, as the vulnerability itself does not directly expose data but could be leveraged to escalate privileges and access sensitive information. Integrity is at risk because attackers could place or modify files in sensitive locations, potentially altering system or application behavior. Availability impact is lower but possible if attackers use this vector to disrupt system components or install ransomware. Given the widespread use of Node.js in web development, backend services, and automation across European enterprises, especially in sectors like finance, telecommunications, and government, exploitation could lead to significant operational disruptions and security breaches. However, the attack requires local access or prior compromise to manipulate the registry, limiting remote exploitation. The absence of known exploits reduces immediate risk but does not eliminate it, especially in targeted attacks.

Mitigation Recommendations

1. Avoid using the .msi installer for Node.js on Windows systems; instead, use alternative installation methods such as the official zip archives, nvm for Windows, or package managers that do not rely on msiexec repair operations. 2. Restrict write permissions to the registry keys controlling the %USERPROFILE% environment variable to prevent modification by non-privileged users. Implement Group Policy or registry ACLs to harden these keys. 3. Monitor and audit changes to the %USERPROFILE% environment variable and related registry keys to detect unauthorized modifications. 4. Apply the principle of least privilege to user accounts to reduce the likelihood of unprivileged users manipulating environment variables or registry settings. 5. Employ endpoint detection and response (EDR) solutions to detect suspicious msiexec.exe behavior, especially unexpected folder creation in unusual locations. 6. Segregate systems running Node.js installations and limit local user access to reduce the attack surface. 7. Stay updated with Node.js vendor advisories for patches or updated installers addressing this vulnerability and apply them promptly once available. 8. For critical systems, consider implementing application whitelisting to prevent unauthorized execution of modified or malicious files placed via this vulnerability.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
hackerone
Date Reserved
2023-04-13T01:00:12.086Z
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d983ac4522896dcbed51b

Added to database: 5/21/2025, 9:09:14 AM

Last enriched: 6/25/2025, 2:02:45 PM

Last updated: 7/31/2025, 9:14:50 AM

Views: 11

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats