chore(deps): update dependency systeminformation to v5.27.14 [security] #355
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.22.0->5.27.14GitHub Vulnerability Alerts
CVE-2024-56334
Summary
The SSID is not sanitized when before it is passed as a parameter to cmd.exe in the
getWindowsIEEE8021xfunction. This means that malicious content in the SSID can be executed as OS commands.Details
I have exploited this vulnerability in a Windows service using version 5.22.11 of the module, to escalate privileges (in an environment where I am authorized to do so). However, as far as I can see from the code, it is still present in master branch at time of writing, on line 403/404 of network.js.
The SSID is obtained from
netsh wlan show interface ...ingetWindowsWirelessIfaceSSID, and then passed tocmd.exe /d /s /c "netsh wlan show profiles ...ingetWindowsIEEE8021x, without sanitization.PoC
First, the command injection payload should be included in the connected Wi-Fi SSID. For example create hotspot on mobile phone or other laptop, set SSID to payload, connect to it with victim Windows system. Two example SSID's to demonstrate exploitation are below.
Demonstration to run ping command indefinitely:
Run executable with privileges of the user in which vulnerable function is executed. Chosen executable should should be placed in (assuming system drive is C):
C:\a\a.exe.Then, the vulnerable function can be executed on the victim system, for example, using:
Now the chosen command,
PING.exeora.exewill be run through the cmd.exe command line.Impact
This vulnerability may enable an attacker, depending on how the package is used, to perform remote code execution or local privilege escalation.
CVE-2025-68154
Summary
The
fsSize()function insysteminformationis vulnerable to OS Command Injection (CWE-78) on Windows systems. The optionaldriveparameter is directly concatenated into a PowerShell command without sanitization, allowing arbitrary command execution when user-controlled input reaches this function.Affected Platforms: Windows only
CVSS Breakdown:
fsSize()Details
Vulnerable Code Location
File:
lib/filesystem.js, Line 197The
driveparameter is concatenated directly into the PowerShell command string without any sanitization.Why This Is a Vulnerability
This is inconsistent with the security pattern used elsewhere in the codebase. Other functions properly sanitize user input using
util.sanitizeShellString():lib/processes.jsservices()util.sanitizeShellString(srv)lib/processes.jsprocessLoad()util.sanitizeShellString(proc)lib/network.jsnetworkStats()util.sanitizeShellString(iface)lib/docker.jsdockerContainerStats()util.sanitizeShellString(containerIDs, true)lib/filesystem.jsfsSize()The
sanitizeShellString()function (defined atlib/util.js:731) removes dangerous characters like;,&,|,$,`,#, etc., which would prevent command injection.PoC
Attack Scenario
An application exposes disk information via an API and passes user input to
si.fsSize():Exploitation
Normal Request:
Malicious Request (Command Injection):
Command Construction Demonstration
The following demonstrates how commands are constructed with malicious input:
Normal usage:
With injection payload
C:; whoami #:PowerShell will execute:
Get-WmiObject Win32_logicaldisk | ... | where -property Caption -eq C:(original command)whoami(injected command)#is commented outPoC Script
PoC Output
As shown, the attacker's commands are injected directly into the PowerShell command string.
Impact
Who Is Affected?
systeminformationon Windows that pass user-controlled input tofsSize(drive)Potential Attack Scenarios
Recommended Fix
Apply
util.sanitizeShellString()to thedriveparameter, consistent with other functions in the codebase:if (_windows) { try { + const driveSanitized = drive ? util.sanitizeShellString(drive, true) : ''; - const cmd = `Get-WmiObject Win32_logicaldisk | select Access,Caption,FileSystem,FreeSpace,Size ${drive ? '| where -property Caption -eq ' + drive : ''} | fl`; + const cmd = `Get-WmiObject Win32_logicaldisk | select Access,Caption,FileSystem,FreeSpace,Size ${driveSanitized ? '| where -property Caption -eq ' + driveSanitized : ''} | fl`; util.powerShell(cmd).then((stdout, error) => {The
trueparameter enables strict mode which removes additional characters like spaces and parentheses.systeminformationthanks developers working on the project. The Systeminformation Project hopes this report helps improve the its security. Please systeminformation know if any additional information or clarification is needed.Release Notes
sebhildebrandt/systeminformation (systeminformation)
v5.27.14Compare Source
v5.27.13Compare Source
v5.27.12Compare Source
v5.27.11Compare Source
v5.27.10Compare Source
v5.27.9Compare Source
v5.27.8Compare Source
v5.27.7Compare Source
v5.27.6Compare Source
v5.27.5Compare Source
v5.27.4Compare Source
v5.27.3Compare Source
v5.27.2Compare Source
v5.27.1Compare Source
v5.27.0Compare Source
v5.26.2Compare Source
v5.26.1Compare Source
v5.26.0Compare Source
v5.25.11Compare Source
v5.25.10Compare Source
v5.25.9Compare Source
v5.25.8Compare Source
v5.25.7Compare Source
v5.25.6Compare Source
v5.25.5Compare Source
v5.25.4Compare Source
v5.25.3Compare Source
v5.25.2Compare Source
v5.25.1Compare Source
v5.25.0Compare Source
v5.24.9Compare Source
v5.24.8Compare Source
v5.24.7Compare Source
v5.24.6Compare Source
v5.24.5Compare Source
v5.24.4Compare Source
v5.24.3Compare Source
v5.24.2Compare Source
v5.24.1Compare Source
v5.24.0Compare Source
v5.23.25Compare Source
v5.23.24Compare Source
v5.23.23Compare Source
v5.23.22Compare Source
v5.23.21Compare Source
v5.23.20Compare Source
v5.23.19Compare Source
v5.23.18Compare Source
v5.23.17Compare Source
v5.23.16Compare Source
v5.23.15Compare Source
v5.23.14Compare Source
v5.23.13Compare Source
v5.23.12Compare Source
v5.23.11Compare Source
v5.23.10Compare Source
v5.23.9Compare Source
v5.23.8Compare Source
v5.23.6Compare Source
v5.23.5Compare Source
v5.23.4Compare Source
v5.23.3Compare Source
v5.23.2Compare Source
v5.23.1Compare Source
v5.23.0Compare Source
v5.22.11Compare Source
v5.22.10Compare Source
v5.22.9Compare Source
v5.22.8Compare Source
v5.22.7Compare Source
v5.22.6Compare Source
v5.22.5Compare Source
v5.22.4Compare Source
v5.22.3Compare Source
v5.22.2Compare Source
v5.22.1Compare Source
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.