CVE-2020-7752

8.8 HIGH

📋 TL;DR

CVE-2020-7752 is a command injection vulnerability in the systeminformation npm package that allows attackers to execute arbitrary operating system commands by manipulating curl parameters. This affects any application using vulnerable versions of systeminformation, particularly Node.js applications that process untrusted input. The vulnerability enables attackers to overwrite JavaScript files and execute malicious commands on the host system.

💻 Affected Systems

Products:
  • systeminformation npm package
Versions: All versions before 4.27.11
Operating Systems: All operating systems where Node.js runs
Default Config Vulnerable: ⚠️ Yes
Notes: Applications must call vulnerable functions with user-controlled input to be exploitable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise allowing attacker to execute arbitrary commands, install malware, exfiltrate data, or pivot to other systems in the network.

🟠

Likely Case

Remote code execution leading to data theft, service disruption, or cryptocurrency mining malware installation.

🟢

If Mitigated

Limited impact due to proper input validation, network segmentation, and least privilege execution contexts.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires the application to process attacker-controlled input through vulnerable functions.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.27.11

Vendor Advisory: https://github.com/sebhildebrandt/systeminformation/commit/931fecaec2c1a7dcc10457bb8cd552d08089da61

Restart Required: Yes

Instructions:

1. Update package.json to require systeminformation version 4.27.11 or higher. 2. Run 'npm update systeminformation'. 3. Restart all Node.js applications using the package.

🔧 Temporary Workarounds

Input Validation

all

Implement strict input validation and sanitization for all parameters passed to systeminformation functions.

Network Restriction

all

Restrict network access for applications using systeminformation to prevent external command execution.

🧯 If You Can't Patch

  • Implement strict input validation and sanitization for all user inputs
  • Run applications with least privilege and in isolated containers

🔍 How to Verify

Check if Vulnerable:

Check package.json or run 'npm list systeminformation' to see if version is below 4.27.11.

Check Version:

npm list systeminformation | grep systeminformation

Verify Fix Applied:

Verify systeminformation version is 4.27.11 or higher using 'npm list systeminformation'.

📡 Detection & Monitoring

Log Indicators:

  • Unusual curl command executions
  • Suspicious file modifications in application directories
  • Unexpected process spawns from Node.js applications

Network Indicators:

  • Outbound connections to suspicious domains from application servers
  • Unusual command and control traffic patterns

SIEM Query:

process.name:node AND (process.cmdline:*curl* OR process.cmdline:*systeminformation*)

🔗 References

📤 Share & Export