Update dependency systeminformation to v5.27.14 [SECURITY] #268
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.27.7→5.27.14GitHub Vulnerability Alerts
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
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 is behind base branch, 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.