Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply crafted service name to app
-
DeliveryApp forwards value to services()
-
ExploitUnicode quotes break out of PowerShell filter
-
ExecutionPowerShell expression runs as Node account
-
ImpactRead/modify files or disrupt service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Windows-only: the injection lives in the Windows branch of services() that builds a Get-CimInstance Win32_Service -Filter command and runs it via util.powerShell(); Linux/macOS are unaffected. The attacker must be able to control the service-name string passed to services() or to getDynamicData(), and a consuming application must forward that attacker-controlled input to the API because the package exposes no network service of its own. The specific trigger is supplying Unicode curly double quotes (U+201C/U+201D) - which the default, non-strict sanitizer leaves intact along with spaces and parentheses - to close the filter string and inject a PowerShell expression. Limiting factors: no built-in network exposure (remote reach is entirely a property of the downstream app), Windows platform required, versions <5.33.16 only, and resulting privileges are capped at whatever account the Node.js process runs under. |
| Impact | Signals point to a genuine but bounded risk rather than an emergency. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N, C:H/I:H/A:H, 7.8) reflects a local-input command-injection yielding full read/write/availability impact under the Node.js process account, not a directly network-reachable flaw. The library exposes no network service, so remote exploitation is not intrinsic - the reporter explicitly could not find a network route in the repository and states remote reachability depends on a consuming application forwarding attacker-controlled input to services()/getDynamicData(). EPSS is very low (0.14%, 4th percentile) and the CVE is not listed in CISA KEV, so there is no evidence of active or widespread exploitation; this is consistent with a vulnerability whose exploitability is contingent on how downstream applications wire untrusted input. Against that, a concrete working proof-of-concept is published in the GHSA advisory and was reproduced by the reporter on Windows, and the vuln.today decision label is 'this_week', so it warrants prompt patching rather than deferral. Net: a real but conditional, Windows-only, operator/deployment-dependent issue - treat it as a this-week patch, not a drop-everything event. Note the apparent AV:L vs. 'could be made network-reachable' tension is resolved by the evidence: the package itself is local, and any network exposure comes from the consumer, not systeminformation. |
| Exploit ScenarioDerived | A Windows application built on systeminformation (<5.33.16) passes a user- or request-supplied service name to services(). An attacker submits a name containing Unicode curly quotation marks (U+201C/U+201D) plus a PowerShell expression; the default sanitizer strips ASCII quotes but leaves the Unicode quotes, so the input terminates the Get-CimInstance -Filter string and the attacker's expression executes as the Node.js process account. A working PoC that creates a marker file via New-Item is published in the GHSA advisory and was reproduced by the reporter on Windows. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Windows command injection in the systeminformation Node.js library before 5.33.16 lets an attacker who controls the service-name argument to services() run arbitrary PowerShell expressions with the Node.js process account's privileges. The flaw is in the Windows-only branch that builds a Get-CimInstance Win32_Service -Filter command; a downstream application must forward attacker-controlled input to services() or getDynamicData() because the package exposes no network service itself. The advisory includes a proof of concept that the reporter reproduced on Windows, but EPSS is low at 0.14% (4th percentile) and there is no CISA KEV listing, so risk is genuine but bounded rather than an emergency.
RemediationAI
Upgrade to systeminformation 5.33.16 or later; the vendor-released patch is version 5.33.16 (release tag v5.33.16, commit 5014c6d25cfce7363b937977327baa853cdba0bf, advisory GHSA-3f7j-7jwc-fxfj at https://github.com/sebhildebrandt/systeminformation/security/advisories/GHSA-3f7j-7jwc-fxfj). The fix extends sanitizeShellString to remove Unicode quotation marks and dashes and restricts Windows service names to an allowlist of characters. If upgrading immediately is not possible, avoid passing untrusted input to services() or getDynamicData() on Windows and enforce a strict allowlist of expected service names in the consuming application before calling the library; run the Node.js process under a least-privileged account because injected commands execute with that account's permissions. The vendor's security documentation already warns that sanitization does not cover every case for arbitrary untrusted input to services().
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
systeminformation is a Node.js library that gathers OS and hardware details. In lib/processes.js, services() sanitizes the caller's service-name string with sanitizeShellString() from lib/util.js and inserts it into a PowerShell Get-CimInstance Win32_Service -Filter command executed through util.powerShell(). The root cause is CWE-78 (improper neutralization of special elements used in an OS command): the default, non-strict sanitizer strips ASCII double quotes but leaves U+201C and U+201D, spaces, and parentheses intact, and PowerShell accepts the Unicode curly quotes as string delimiters. That lets crafted input close the filter string and append a PowerShell expression. The vulnerable path is Windows-only; Linux and macOS are unaffected, and the privileges obtained are capped by the account running the Node.js process. The CVSS 3.1 vector is AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, reflecting a local attack with low privileges and no user interaction; remote reachability is not inherent to the package and depends on a consuming application forwarding untrusted data.
Know when Systeminformation gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Local library input with no network service of its own (AV:L); trivial, fully-described Unicode-quote trigger (AC:L); attacker must supply input to the application (PR:L); arbitrary command execution as the Node account gives C:H/I:H/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Blast Radius
ecosystem impact- 4,694 npm packages depend on systeminformation (985 direct, 3,735 indirect)
Ecosystem-wide dependent count for version 5.33.16.
Executive ViewAI
CVE-2026-116576 is a high-severity command injection vulnerability in the systeminformation Node.js library (versions before 5.33.16) that allows an attacker to execute arbitrary PowerShell commands on Windows hosts, but only if a downstream application passes untrusted input to the vulnerable services() function. This means products built on this library could be compromised if they expose service-name parameters to users, potentially leading to full system compromise under the Node.js process account. Leadership should care because any internal or customer-facing application using the affected library and forwarding user-controlled input could become an attack vector, though the risk is currently bounded by the low EPSS score (0.1%) and lack of confirmed active exploitation.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
More in Systeminformation
View allCommand injection in systeminformation versions before 5.31.0 allows local attackers with user privileges to execute arb
This affects the package systeminformation before 4.27.11. Rated high severity (CVSS 8.8), this vulnerability is remotel
OS command injection in the systeminformation Node.js library on Windows allows arbitrary PowerShell command execution w
Command injection in the systeminformation Node.js library (versions prior to 5.30.8) lets attackers run arbitrary OS co
The System Information Library for Node.JS (npm package "systeminformation") is an open source collection of functions t
This affects the package systeminformation before 4.30.2. Rated high severity (CVSS 7.3), this vulnerability is remotely
systeminformation is a System Information Library for Node.JS. Rated critical severity (CVSS 9.8), this vulnerability is
systeminformation is an open source system and OS information library for node.js. Rated critical severity (CVSS 9.8), t
npm package systeminformation before version 4.30.5 is vulnerable to Prototype Pollution leading to Command Injection. R
In systeminformation (npm package) before version 4.31.1 there is a command injection vulnerability. Rated high severity
Prototype pollution in the npm systeminformation library (versions up to and including 5.33.12) lets unauthenticated rem
Path traversal in the Linux networkStats() implementation of systeminformation before 5.33.14 allows a caller who contro
EUVD-2026-110317
GHSA-3f7j-7jwc-fxfj
NVD
CVE.org
EPSS
Exploit-DB