Executive brief
systeminformation is a Node.js library that retrieves detailed system and OS information. A prototype pollution vulnerability in the si.inetChecksite() function allows attackers to inject arbitrary commands through unsanitized service parameter strings, potentially leading to remote command execution on systems using the library.
Technical details
The vulnerability is a command injection flaw introduced via prototype pollution in the systeminformation library. The root cause is insufficient shell sanitization in the si.inetChecksite() function, which accepts service parameter strings that are not properly validated before being used in shell command execution. An attacker can exploit this by crafting malicious service parameter strings containing shell metacharacters or command injection payloads, bypassing the intended parameter handling through prototype pollution techniques. This allows remote code execution on the affected system. The fix involves a rewrite of shell sanitation logic to prevent prototype pollution. All versions prior to 4.30.5 are affected; users should upgrade immediately or sanitize service parameter inputs as a workaround.
Affected products
- sebhildebrandt systeminformation < 4.30.5
Timeline
- 2020-11-27: disclosed: Advisory published
- 2020-11-26: patched: Fix released in version 4.30.5