CVE-2026-116576
High · 7.8CVSS
7.8
EPSS
0.1%
Published
Oct 26, 2026
CISA due date
—
Cloudanix analysis
A flaw in a system information tool for Node.js lets attackers who can supply certain input run their own commands on Windows computers, potentially stealing or changing files.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Command injection in services() via incomplete sanitization of Unicode quotes in PowerShell filter construction on Windows, allowing arbitrary expression execution under the Node.js process account.
Why it matters to the business
Attackers who can supply input to affected functions may read or alter files, modify application data, or disrupt services on Windows systems using the library.
How an attack unfolds
An attacker supplies a crafted service name containing Unicode quotation marks to services() or getDynamicData(). The sanitizer strips ASCII quotes but leaves the Unicode delimiters intact, so PowerShell treats the injected content as a separate expression that executes when util.powerShell() runs the command.
How to fix it
Upgrade systeminformation to version 5.33.16 or later. Review all call sites that forward untrusted input to services() or getDynamicData() and apply additional input validation or avoid direct use of the affected functions on Windows.
How to confirm the fix worked
Confirm the installed version is at least 5.33.16. Test by passing a service name containing Unicode quotation marks and verifying the injected expression is no longer executed.
Typical attack path
- Identify a consuming application that passes attacker-controlled values to services() or getDynamicData()
- Craft a service name containing Unicode left/right double quotation marks around a terminating filter and injected PowerShell expression
- Submit the payload through the application input path
- PowerShell executes the injected expression with the privileges of the Node.js process
How to detect it
Monitor process creation logs for Node.js spawning PowerShell with unusual Get-CimInstance filter arguments containing non-ASCII quotation characters or unexpected expressions. Review application logs for service name parameters that include quotation marks.
What your security team should do
- Upgrade to 5.33.16 immediately on all Windows deployments
- Audit application code for direct or indirect calls to the affected functions with untrusted data
- Implement compensating controls such as strict allow-listing of service names until upgrade is complete
The record
systeminformation is a System and OS information library for node.js. Prior to 5.33.16, services() in lib/processes.js inserts a caller-supplied service name into a PowerShell Get-CimInstance filter after processing it with sanitizeShellString() in lib/util.js. On Windows, the sanitizer removes ASCII quotes but permits Unicode quotation marks that PowerShell accepts as string delimiters, allowing crafted input to terminate the filter and place a PowerShell expression in the command executed by util.powerShell(). The expression runs with the Node.js process account's permissions and may read or change accessible files, alter application data, or disrupt the service. The package does not expose a network service itself, so remote reachability depends on a consuming application forwarding attacker-controlled input to services() or getDynamicData(). This issue is fixed in version 5.33.16.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-62853 ThingLinks is an enterprise IoT platform. CWE-78
- CVE-2026-119335 Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing… CWE-78
- CVE-2026-116241 pgAdmin 4's Import/Export Data tool wraps a user's query export in a psql \copy (...) TO… CWE-78
- CVE-2026-119713 Paperclip 2026.403.0 before 2026.416.0 contains a remote code execution vulnerability… CWE-78
- CVE-2026-119288 Zuke is a code-first, strongly typed build automation system for Deno. CWE-78
- CVE-2026-118238 The Tenda W18E web management server is vulnerable to OS command injection via the… CWE-78
- CVE-2026-91913 Dell OpenManage Enterprise, versions prior to 4.8.0, contains an Improper Neutralization… CWE-78
- CVE-2026-118992 CallBackery versions before 0.62.0 for Perl allow OS command execution via sqlite3 shell… CWE-78